From 1d15746821b536ef60d6b86e475bf0057d98e8bd Mon Sep 17 00:00:00 2001 From: Naeem Model Date: Tue, 25 Jul 2023 01:50:09 +0000 Subject: Prompt user to install optional dependency --- NAMESPACE | 1 + R/app.R | 16 +++++++++++++--- R/ui.R | 4 ++-- 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( ) ) ) -) +)} -- cgit v1.2.3