From 6b367767b39946b251ab343e5454b1cf6fb6d4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Todor=20Kondi=C4=87?= <todor.kondic@uni.lu> Date: Thu, 9 Sep 2021 11:58:51 +0200 Subject: [PATCH] api: updated: app --- R/api.R | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/R/api.R b/R/api.R index 8421b3c..954b22b 100644 --- a/R/api.R +++ b/R/api.R @@ -661,9 +661,33 @@ report <- function(m) { #' @export -app <- function(shiny_args=NULL,render_args=NULL) { - unlink(list.files(pattern = "app_run.*html$")) - unlink(list.files(pattern = "app_run.*Rmd$")) +#' @title app +#' @param shiny_args `list`, optional list of arguments conveyed to +#' `rmarkdown::run` `shiny_args` argument. +#' @param render_args `list`, optional list of arguments conveyed to +#' `rmarkdown::run` `render_args` argument. +#' @param indir `character(1)`, a location on the server side +#' containing data files. +#' @param userdir `character(1)` +#' @return Nada. +#' @author Todor Kondić +app <- function(shiny_args=list(launch.browser=F),render_args=NULL,indir=getwd(),userdir=getwd()) { + dir_before <- getwd() + init <- list() + init$dir_before <- dir_before + init$indir <- normalizePath(indir) + init$userdir <- normalizePath(userdir) + if (!dir.exists(init$indir)) stop("Data directory (indir), currently `", + init$indir, + "` does not exist. Abort.") + if (!dir.exists(init$userdir)) stop("User root directory (userdir), currently `", + init$userdir,"` does not exist.. Abort.") + on.exit(expr=setwd(dir_before)) + + dir_start <- tempfile("shinyscreen") + dir.create(dir_start, recursive = T) + setwd(dir_start) + saveRDS(object = init,file="init.rds") file.copy(system.file(file.path("rmd","app.Rmd"),package = "shinyscreen"),"app_run.Rmd") rmarkdown::run(file = "app_run.Rmd", shiny_args = shiny_args, render_args = render_args) } -- GitLab