From e467a82539557b156b8d348d6cd0947cdcd1fc44 Mon Sep 17 00:00:00 2001 From: Naeem Model Date: Thu, 9 May 2024 20:34:03 +0000 Subject: Add Shiny app dependencies add specify entry point --- DESCRIPTION | 9 +++++---- NAMESPACE | 3 --- R/app.R | 33 +++++++++++++++++++++++++-------- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 586a139..7a5b6e8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -11,16 +11,17 @@ Description: A collection of methods for estimating the basic reproduction number (R0) of infectious diseases. Optionally available as a web application using the 'shiny' framework. License: AGPL (>= 3) -URL: https://github.com/MI2Labs/Rnaught -BugReports: https://github.com/MI2Labs/Rnaught/issues +URL: https://github.com/MI2YorkU/Rnaught +BugReports: https://github.com/MI2YorkU/Rnaught/issues Imports: - methods, stats, utils Suggests: knitr, rmarkdown, - shiny + shiny, + bslib, + DT Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) diff --git a/NAMESPACE b/NAMESPACE index 42ad282..1557cc1 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -5,9 +5,6 @@ export(id) export(idea) export(seq_bayes) export(wp) -importFrom(methods,is) importFrom(stats,pgamma) importFrom(stats,qgamma) importFrom(utils,install.packages) -importFrom(utils,read.csv) -importFrom(utils,write.csv) diff --git a/R/app.R b/R/app.R index 945f9e4..01f35b4 100644 --- a/R/app.R +++ b/R/app.R @@ -4,16 +4,33 @@ #' #' @export app <- function() { + missing_pkgs <- c() + # Check for any missing, required packages. if (!requireNamespace("shiny", quietly = TRUE)) { - answer <- readline(paste0("The package 'shiny' must be installed to ", - "launch the Rnaught web application.\nWould you like to install it? ", - "[Y/n] ")) + missing_pkgs <- c(missing_pkgs, "shiny") + } + if (!requireNamespace("bslib", quietly = TRUE)) { + missing_pkgs <- c(missing_pkgs, "bslib") + } + if (!requireNamespace("DT", quietly = TRUE)) { + missing_pkgs <- c(missing_pkgs, "DT") + } + + # If any of the required packages are missing, + # prompt the user to install them. + if (length(missing_pkgs) > 0) { + cat("The following packages must be installed to run the", + "Rnaught web application:\n" + ) + writeLines(missing_pkgs) + answer <- readline("Begin installation? [Y/n] ") - if (answer == "Y" || answer == "y") - install.packages("shiny") - else - stop("Aborting.", call. = FALSE) + if (answer == "Y" || answer == "y") { + install.packages(missing_pkgs) + } else { + stop("Aborting due to missing, required packages.", call. = FALSE) + } } - shiny::shinyApp(ui(), server) + shiny::runApp(appDir = system.file("app", package = "Rnaught")) } -- cgit v1.2.3