mirror of
https://github.com/rstudio/shiny.git
synced 2026-01-09 23:18:10 -05:00
40 lines
1.1 KiB
R
40 lines
1.1 KiB
R
appdirs <- function() {
|
|
res <- list.dirs(full.names = FALSE, recursive = FALSE)
|
|
res[res != "output"]
|
|
}
|
|
|
|
executeApp <- function(appPath) {
|
|
if (system2("which", "phantomjs", stdout = NULL) != 0) {
|
|
stop("phantomjs must be installed and on the system path")
|
|
}
|
|
|
|
system2("phantomjs", "visit.js", stdout = NULL, stderr = NULL, wait = FALSE)
|
|
result <- system2(
|
|
"R",
|
|
c("--slave", "-e",
|
|
shQuote(sprintf("shiny::runApp('%s', port = 8765)", appPath))
|
|
),
|
|
stdout = TRUE, stderr = TRUE
|
|
)
|
|
result <- gsub(fixed = TRUE, getwd(), "${PWD}", result)
|
|
result <- gsub(fixed = TRUE, dirname(getwd()), "${SHINY}", result)
|
|
result
|
|
}
|
|
|
|
# Returns TRUE if the files indicated in artifactPaths exist, and
|
|
# have mtimes that are later than or equal to all the other mtimes
|
|
# in the dir.
|
|
# Example:
|
|
# upToDate("./bin", "a.out")
|
|
upToDate <- function(dirname, artifactPaths) {
|
|
files <- list.files(dirname, recursive = TRUE)
|
|
if (!all(artifactPaths %in% files)) {
|
|
# One or more artifacts missing
|
|
return(FALSE)
|
|
}
|
|
times <- file.mtime(file.path(dirname, files))
|
|
artifactTimes <- times[files %in% artifactPaths]
|
|
|
|
max(artifactTimes) >= max(times)
|
|
}
|