From cdf80acf3075c27e1e9f2887e4be3eea5de15fa9 Mon Sep 17 00:00:00 2001 From: James Balamuta Date: Tue, 8 Sep 2020 19:06:08 -0500 Subject: [PATCH 1/2] Detect resources in file directory. Copy to output directories before attempting render. --- DESCRIPTION | 2 +- R/assignr.R | 22 +++++++++++++++++++--- man/assignr-package.Rd | 1 + 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 919ac23..f310357 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -26,4 +26,4 @@ Suggests: knitr, covr VignetteBuilder: knitr -RoxygenNote: 7.1.0 +RoxygenNote: 7.1.1 diff --git a/R/assignr.R b/R/assignr.R index 2d613f5..a70146a 100644 --- a/R/assignr.R +++ b/R/assignr.R @@ -51,7 +51,8 @@ generate_hw_pkg = function(x, type, output_dir = paste0(name, "-", type), render_files = TRUE, - zip_files = TRUE) { + zip_files = TRUE, + file_dependencies = NULL) { if (length(remove_indexes) > 0) { # create assignment output lines @@ -69,6 +70,12 @@ generate_hw_pkg = function(x, # Make the directory dir.create(output_path, recursive = TRUE) + # Fill directory + if(length(file_dependencies) >= 1) { + file.copy(file_dependencies, + file.path(output_path, basename(file_dependencies))) + } + # Name of Rmd file to build rmd_material_name = file.path(output_path, paste0(output_name, ".Rmd")) @@ -105,6 +112,11 @@ extract_hw_name = function(x) { } +hw_dir_dependencies = function(x) { + main_dir_files = list.files(dirname(x)) + grep(main_dir_files, pattern='-(main|assign|sol)', invert=TRUE, value=TRUE) +} + #' Retrieve example file path #' #' Obtains the file path for the example Rmd in the package. @@ -181,6 +193,8 @@ assignr = function(file, hw_name = extract_hw_name(file) + hw_dependency_files = hw_dir_dependencies(file) + input_lines = readLines(file) chunk_tick_lines = detect_positions(input_lines, "```") @@ -220,7 +234,8 @@ assignr = function(file, type = "assign", output_dir = output_dir, render_files = render_files, - zip_files = zip_files + zip_files = zip_files, + file_dependencies = hw_dependency_files ) } @@ -232,7 +247,8 @@ assignr = function(file, type = "soln", output_dir = output_dir, render_files = render_files, - zip_files = zip_files + zip_files = zip_files, + file_dependencies = hw_dependency_files ) } diff --git a/man/assignr-package.Rd b/man/assignr-package.Rd index a0e180e..289b7e8 100644 --- a/man/assignr-package.Rd +++ b/man/assignr-package.Rd @@ -31,3 +31,4 @@ Authors: } } +\keyword{internal} From 017b9c28d01e94b9bc1d65f027d17c4fed943ac5 Mon Sep 17 00:00:00 2001 From: James Balamuta Date: Tue, 8 Sep 2020 19:28:53 -0500 Subject: [PATCH 2/2] Make sure filenames are full names as we may be out of directory --- R/assignr.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/assignr.R b/R/assignr.R index a70146a..77fe8b8 100644 --- a/R/assignr.R +++ b/R/assignr.R @@ -113,7 +113,7 @@ extract_hw_name = function(x) { } hw_dir_dependencies = function(x) { - main_dir_files = list.files(dirname(x)) + main_dir_files = list.files(dirname(x), full.names = TRUE) grep(main_dir_files, pattern='-(main|assign|sol)', invert=TRUE, value=TRUE) }