aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaeem Model <me@nmode.ca>2023-07-25 01:50:09 +0000
committerNaeem Model <me@nmode.ca>2023-07-25 01:50:09 +0000
commit1d15746821b536ef60d6b86e475bf0057d98e8bd (patch)
tree6a8dc6d11c6f698e62de938463f43631a13e6494
parent91465cd1193400053a48cca196d3fd777183c82c (diff)
Prompt user to install optional dependency
-rw-r--r--NAMESPACE1
-rw-r--r--R/app.R16
-rw-r--r--R/ui.R4
3 files changed, 16 insertions, 5 deletions
diff --git a/NAMESPACE b/NAMESPACE
index 92f1c4b..0508cde 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -10,5 +10,6 @@ importFrom(stats,pexp)
importFrom(stats,pgamma)
importFrom(stats,qexp)
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 feb052f..945f9e4 100644
--- a/R/app.R
+++ b/R/app.R
@@ -1,9 +1,19 @@
#' Launch the Rnaught Web Application
#'
+#' @importFrom utils install.packages
+#'
#' @export
app <- function() {
- if (!requireNamespace("shiny", quietly = TRUE))
- stop("The package 'shiny' must be installed to launch the Rnaught web application.")
+ 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] "))
+
+ if (answer == "Y" || answer == "y")
+ install.packages("shiny")
+ else
+ stop("Aborting.", call. = FALSE)
+ }
- shiny::shinyApp(ui, server)
+ shiny::shinyApp(ui(), server)
}
diff --git a/R/ui.R b/R/ui.R
index 4e4a500..5c6d420 100644
--- a/R/ui.R
+++ b/R/ui.R
@@ -1,4 +1,4 @@
-ui <- shiny::fluidPage(
+ui <- function() { shiny::fluidPage(
# Title.
shiny::titlePanel(shiny::HTML(
paste0("Rnaught: An Estimation Suite for R", shiny::tags$sub("0")))),
@@ -194,4 +194,4 @@ ui <- shiny::fluidPage(
)
)
)
-)
+)}