diff --git a/R/find_rev.R b/R/find_rev.R index 323d3e88..9198c1c1 100644 --- a/R/find_rev.R +++ b/R/find_rev.R @@ -156,7 +156,7 @@ fetchgit <- function(git_pkg){ sri_hash <- sri_hash } - sprintf('buildRPackage { + sprintf('(buildRPackage { name = %s; src = fetchgit { url = \"%s\"; @@ -283,7 +283,7 @@ OTHER_PACKAGES other-pkgs = [OTHER_PKGS]; USE_RSTUDIO my-rstudio = rstudioWrapper.override { USE_RSTUDIO packages = with rPackages; [ USE_RSTUDIO PACKAGE_LIST -USE_RSTUDIO GIT_PACKAGES +USE_RSTUDIO RSTUDIO_GITPKGS USE_RSTUDIO ]; USE_RSTUDIO}; in @@ -296,15 +296,31 @@ USE_RSTUDIO}; }" nixFile <- gsub('RE_VERSION', find_rev(r_ver) , nixTemplate) + nixFile <- gsub('DATE', date(), nixFile) + + nixFile <- gsub('USE_RSTUDIO', + ifelse(!is.null(ide) & ide == "rstudio", '', 'TO_DELETE'), + nixFile) + + nixFile <- gsub('RSTUDIO_GITPKGS', + ifelse(!is.null(ide) & ide == "rstudio", 'GIT_PACKAGES', 'RSTUDIO_GITPKGS'), + nixFile) + r_packages <- gsub('\\.', '_', r_packages) nixFile <- gsub('PACKAGE_LIST', r_packages, nixFile) + nixFile <- gsub('OTHER_PKGS', other_packages, nixFile) - nixFile <- gsub('OTHER_PACKAGES', ifelse(!is.null(other_pkgs), '', '#'), nixFile) + nixFile <- gsub('OTHER_PACKAGES', + ifelse(!is.null(other_pkgs), '', 'TO_DELETE'), + nixFile) + nixFile <- gsub('GIT_PACKAGES', ifelse(!is.null(git_pkgs), fetchgits(git_pkgs), - '#'), nixFile) - nixFile <- gsub('DATE', date(), nixFile) - nixFile <- gsub('USE_RSTUDIO', ifelse(!is.null(ide) & ide == "rstudio", '', '#'), nixFile) + 'TO_DELETE'), nixFile) + + nixFile <- readLines(textConnection(nixFile)) + + nixFile <- grep('TO_DELETE', nixFile, invert = TRUE, value = TRUE) if(!file.exists(path) | overwrite){ writeLines(nixFile, path) diff --git a/dev/build_envs.Rmd b/dev/build_envs.Rmd index db46f855..4bf85944 100644 --- a/dev/build_envs.Rmd +++ b/dev/build_envs.Rmd @@ -239,7 +239,7 @@ fetchgit <- function(git_pkg){ sri_hash <- sri_hash } - sprintf('buildRPackage { + sprintf('(buildRPackage { name = %s; src = fetchgit { url = \"%s\"; @@ -379,7 +379,7 @@ OTHER_PACKAGES other-pkgs = [OTHER_PKGS]; USE_RSTUDIO my-rstudio = rstudioWrapper.override { USE_RSTUDIO packages = with rPackages; [ USE_RSTUDIO PACKAGE_LIST -USE_RSTUDIO GIT_PACKAGES +USE_RSTUDIO RSTUDIO_GITPKGS USE_RSTUDIO ]; USE_RSTUDIO}; in @@ -392,15 +392,31 @@ USE_RSTUDIO}; }" nixFile <- gsub('RE_VERSION', find_rev(r_ver) , nixTemplate) + nixFile <- gsub('DATE', date(), nixFile) + + nixFile <- gsub('USE_RSTUDIO', + ifelse(!is.null(ide) & ide == "rstudio", '', 'TO_DELETE'), + nixFile) + + nixFile <- gsub('RSTUDIO_GITPKGS', + ifelse(!is.null(ide) & ide == "rstudio", 'GIT_PACKAGES', 'RSTUDIO_GITPKGS'), + nixFile) + r_packages <- gsub('\\.', '_', r_packages) nixFile <- gsub('PACKAGE_LIST', r_packages, nixFile) + nixFile <- gsub('OTHER_PKGS', other_packages, nixFile) - nixFile <- gsub('OTHER_PACKAGES', ifelse(!is.null(other_pkgs), '', '#'), nixFile) + nixFile <- gsub('OTHER_PACKAGES', + ifelse(!is.null(other_pkgs), '', 'TO_DELETE'), + nixFile) + nixFile <- gsub('GIT_PACKAGES', ifelse(!is.null(git_pkgs), fetchgits(git_pkgs), - '#'), nixFile) - nixFile <- gsub('DATE', date(), nixFile) - nixFile <- gsub('USE_RSTUDIO', ifelse(!is.null(ide) & ide == "rstudio", '', '#'), nixFile) + 'TO_DELETE'), nixFile) + + nixFile <- readLines(textConnection(nixFile)) + + nixFile <- grep('TO_DELETE', nixFile, invert = TRUE, value = TRUE) if(!file.exists(path) | overwrite){ writeLines(nixFile, path) diff --git a/dev/building_envs_with_rix.Rmd b/dev/building_envs_with_rix.Rmd index c958c35a..a48b92ea 100644 --- a/dev/building_envs_with_rix.Rmd +++ b/dev/building_envs_with_rix.Rmd @@ -11,7 +11,7 @@ Basic usage: path_default_nix <- tempdir() -rix(r_ver = "current", +rix(r_ver = "4.2.1", r_pkgs = c("dplyr", "janitor"), other_pkgs = c("quarto"), git_pkgs = NULL, @@ -28,7 +28,7 @@ cat(readLines(paste0(path_default_nix, "/default.nix")), sep = "\n") Specifying a package on Github: ```{r} -rix(r_ver = "current", +rix(r_ver = "4.2.1", r_pkgs = c("dplyr", "janitor"), other_pkgs = c("quarto"), git_pkgs = list(package_name = "housing", diff --git a/vignettes/building_envs_with_rix.Rmd b/vignettes/building_envs_with_rix.Rmd index 3b026246..a60df9cc 100644 --- a/vignettes/building_envs_with_rix.Rmd +++ b/vignettes/building_envs_with_rix.Rmd @@ -27,7 +27,7 @@ Basic usage: path_default_nix <- tempdir() -rix(r_ver = "current", +rix(r_ver = "4.2.1", r_pkgs = c("dplyr", "janitor"), other_pkgs = c("quarto"), git_pkgs = NULL, @@ -45,7 +45,7 @@ Specifying a package on Github: ```{r} -rix(r_ver = "current", +rix(r_ver = "4.2.1", r_pkgs = c("dplyr", "janitor"), other_pkgs = c("quarto"), git_pkgs = list(package_name = "housing",