X-Git-Url: https://git.arvados.org/rnaseq-cwl-training.git/blobdiff_plain/acb49f78a3c69a1bcb0c50e926e6a507a1ec1c3d..9be4b22988fafd16c05037f6574986725984d533:/bin/generate_md_episodes.R diff --git a/bin/generate_md_episodes.R b/bin/generate_md_episodes.R index 43bf65e..6d8a2d7 100644 --- a/bin/generate_md_episodes.R +++ b/bin/generate_md_episodes.R @@ -1,14 +1,27 @@ generate_md_episodes <- function() { - if (require("knitr")) { - if (packageVersion("knitr") < '1.9.19') { - stop("knitr must be version 1.9.20 or higher") - } - } else stop("knitr 1.9.20 or above is needed to build the lessons.") + if (require("knitr") && packageVersion("knitr") < '1.9.19') + stop("knitr must be version 1.9.20 or higher") if (!require("stringr")) stop("The package stringr is required for generating the lessons.") + if (require("checkpoint")) { + required_pkgs <- + checkpoint:::projectScanPackages(project = "_episodes_rmd", + verbose=FALSE, use.knitr = TRUE)$pkgs + } else { + stop("The checkpoint package is required to build the lessons.") + } + + missing_pkgs <- required_pkgs[!(required_pkgs %in% rownames(installed.packages()))] + + if (length(missing_pkgs)) { + message("Installing missing required packages: ", + paste(missing_pkgs, collapse=", ")) + install.packages(missing_pkgs) + } + ## find all the Rmd files, and generates the paths for their respective outputs src_rmd <- list.files(pattern = "??-*.Rmd$", path = "_episodes_rmd", full.names = TRUE) dest_md <- file.path("_episodes", gsub("Rmd$", "md", basename(src_rmd)))