---
title: "Create dependencies file"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Create dependencies file}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

```{r}
library(attachment)
```





  


# Write instructions to install all dependencies from a "DESCRIPTION" file

`create_dependencies_file()` creates "inst/dependencies.R" file with the instructions to install all dependencies listed in your "DESCRIPTION".
This accounts for the "Remotes" field and write instructions accordingly.   

Use `create_dependencies_file(to = NULL)` to only retrieve the output as a list of character and not save a "inst/dependencies.R" file in your project. 
This can be used in a `Readme.Rmd` file for instance, to get the full list of each dependency to install and how, from any "DESCRIPTION" file.


```{r examples-create_dependencies_file}
#| eval: yes

# Create a fake package
tmpdir <- tempfile(pattern = "depsfile")
dir.create(tmpdir)
file.copy(system.file("dummypackage",package = "attachment"), tmpdir,
          recursive = TRUE)
dummypackage <- file.path(tmpdir, "dummypackage")

# Create the dependencies commands but no file
create_dependencies_file(
  path = file.path(dummypackage,"DESCRIPTION"),
  to = NULL,
  open_file = FALSE)

# Create the dependencies files in the package
create_dependencies_file(
  path = file.path(dummypackage,"DESCRIPTION"),
  to = file.path(dummypackage, "inst/dependencies.R"),
  open_file = FALSE)
list.files(file.path(dummypackage, "inst"))
# browseURL(dummypackage)

# Clean temp files after this example
unlink(tmpdir, recursive = TRUE)
```




