Commit cbbc83d7 authored by unknown's avatar unknown
Browse files

v0.1.6.14 management of the .ShinyGR.hist global variable to avoid NOTE during the CRAN check

parent 5782bb8f
Package: airGRteaching
Type: Package
Title: Tools to Simplify the Use of the airGR Hydrological Package for Education (Including a Shiny Interface)
Date: 2017-09-28
Authors@R: c(person("Olivier", "Delaigue", role = c("aut", "cre"), email = ""), person("Laurent", "Coron", role = c("aut")), person("Pierre", "Brigode", role = c("aut")), person("Guillaume", "Thirel", role = c("ctb")))
Depends: airGR (>=
......@@ -7,6 +7,8 @@
if (getRversion() >= "2.15.1") {
## Helper function to get the path to the library directory for a
## given packrat project.
getPackratLibDir <- function(projDir = NULL) {
path <- file.path("packrat", "lib", R.version$platform, getRversion())
if (!is.null(projDir)) {
## Strip trailing slashes if necessary
projDir <- sub("/+$", "", projDir)
## Only prepend path if different from current working dir
if (!identical(normalizePath(projDir), normalizePath(getwd())))
path <- file.path(projDir, path)
## Ensure that we set the packrat library directory relative to the
## project directory. Normally, this should be the working directory,
## but we also use '.rs.getProjectDirectory()' if necessary (e.g. we're
## rebuilding a project while within a separate directory)
libDir <- if (exists(".rs.getProjectDirectory"))
## Unload packrat in case it's loaded -- this ensures packrat _must_ be
## loaded from the private library. Note that `requireNamespace` will
## succeed if the package is already loaded, regardless of lib.loc!
if ("packrat" %in% loadedNamespaces())
try(unloadNamespace("packrat"), silent = TRUE)
if (suppressWarnings(requireNamespace("packrat", quietly = TRUE, lib.loc = libDir))) {
# Check 'print.banner.on.startup' -- when NA and RStudio, don't print
print.banner <- packrat::get_opts("print.banner.on.startup")
if (print.banner == "auto" &&"RSTUDIO", unset = NA))) {
print.banner <- TRUE
} else {
print.banner <- FALSE
return(packrat::on(print.banner = print.banner))
## Escape hatch to allow RStudio to handle bootstrapping. This
## enables RStudio to provide print output when automagically
## restoring a project from a bundle on load.
if (!"RSTUDIO", unset = NA)) &&"RSTUDIO_PACKRAT_BOOTSTRAP", unset = NA))) {
setHook("rstudio.sessionInit", function(...) {
# Ensure that, on sourcing 'packrat/init.R', we are
# within the project root directory
if (exists(".rs.getProjectDirectory")) {
owd <- getwd()
on.exit(setwd(owd), add = TRUE)
## Bootstrapping -- only performed in interactive contexts,
## or when explicitly asked for on the command line
if (interactive() || "--bootstrap-packrat" %in% commandArgs(TRUE)) {
message("Packrat is not installed in the local library -- ",
"attempting to bootstrap an installation...")
## We need utils for the following to succeed -- there are calls to functions
## in 'restore' that are contained within utils. utils gets loaded at the
## end of start-up anyhow, so this should be fine
library("utils", character.only = TRUE)
## Install packrat into local project library
packratSrcPath <- list.files(full.names = TRUE,
file.path("packrat", "src", "packrat")
## No packrat tarballs available locally -- try some other means of installation
if (!length(packratSrcPath)) {
message("> No source tarball of packrat available locally")
## There are no packrat sources available -- try using a version of
## packrat installed in the user library to bootstrap
if (requireNamespace("packrat", quietly = TRUE) && packageVersion("packrat") >= "") {
message("> Using user-library packrat (",
") to bootstrap this project")
## Couldn't find a user-local packrat -- try finding and using devtools
## to install
else if (requireNamespace("devtools", quietly = TRUE)) {
message("> Attempting to use devtools::install_github to install ",
"a temporary version of packrat")
library(stats) ## for setNames
## Try downloading packrat from CRAN if available
else if ("packrat" %in% rownames(available.packages())) {
message("> Installing packrat from CRAN")
## Fail -- couldn't find an appropriate means of installing packrat
else {
stop("Could not automatically bootstrap packrat -- try running ",
"\"'install.packages('devtools'); devtools::install_github('rstudio/packrat')\"",
"and restarting R to bootstrap packrat.")
# Restore the project, unload the temporary packrat, and load the private packrat
packrat::restore(prompt = FALSE, restart = TRUE)
## This code path only reached if we didn't restart earlier
requireNamespace("packrat", lib.loc = libDir, quietly = TRUE)
## Multiple packrat tarballs available locally -- try to choose one
## TODO: read lock file and infer most appropriate from there; low priority because
## after bootstrapping packrat a restore should do the right thing
if (length(packratSrcPath) > 1) {
warning("Multiple versions of packrat available in the source directory;",
"using packrat source:\n- ", shQuote(packratSrcPath))
packratSrcPath <- packratSrcPath[[1]]
lib <- file.path("packrat", "lib", R.version$platform, getRversion())
if (!file.exists(lib)) {
dir.create(lib, recursive = TRUE)
lib <- normalizePath(lib, winslash = "/")
message("> Installing packrat into project private library:")
message("- ", shQuote(lib))
surround <- function(x, with) {
if (!length(x)) return(character())
paste0(with, x, with)
## The following is performed because a regular install.packages call can fail
peq <- function(x, y) paste(x, y, sep = " = ")
installArgs <- c(
peq("pkgs", surround(packratSrcPath, with = "'")),
peq("lib", surround(lib, with = "'")),
peq("repos", "NULL"),
peq("type", surround("source", with = "'"))
installCmd <- paste(sep = "",
paste(installArgs, collapse = ", "),
fullCmd <- paste(
surround(file.path(R.home("bin"), "R"), with = "\""),
surround(installCmd, with = "\"")
## Tag the installed packrat so we know it's managed by packrat
## TODO: should this be taking information from the lockfile? this is a bit awkward
## because we're taking an un-annotated packrat source tarball and simply assuming it's now
## an 'installed from source' version
## -- InstallAgent -- ##
installAgent <- 'InstallAgent: packrat 0.4.8-1'
## -- InstallSource -- ##
installSource <- 'InstallSource: source'
packratDescPath <- file.path(lib, "packrat", "DESCRIPTION")
DESCRIPTION <- readLines(packratDescPath)
DESCRIPTION <- c(DESCRIPTION, installAgent, installSource)
cat(DESCRIPTION, file = packratDescPath, sep = "\n")
# Otherwise, continue on as normal
message("> Attaching packrat")
library("packrat", character.only = TRUE, lib.loc = lib)
message("> Restoring library")
restore(restart = FALSE)
# If the environment allows us to restart, do so with a call to restore
restart <- getOption("restart")
if (!is.null(restart)) {
message("> Packrat bootstrap successfully completed. ",
"Restarting R and entering packrat mode...")
# Callers (source-erers) can define this hidden variable to make sure we don't enter packrat mode
# Primarily useful for testing
if (!exists(".__DONT_ENTER_PACKRAT_MODE__.") && interactive()) {
message("> Packrat bootstrap successfully completed. Entering packrat mode...")
PackratFormat: 1.4
RVersion: 3.3.3
Repos: CRAN=,
Package: R6
Source: CRAN
Version: 2.2.1
Hash: 530f0b839551f96ec991ce4f93156ee1
Package: Rcpp
Source: CRAN
Version: 0.12.11
Hash: 2ee22f3b5e75dec80b1d8eca61cd96d8
Package: airGR
Source: CRAN
Package: digest
Source: CRAN
Version: 0.6.12
Hash: e53fb8c58673df868183697e39a6a4d6
Package: dygraphs
Source: CRAN
Hash: 6c0c428f37a8923a337e1af157f63839
Requires: magrittr, htmltools, zoo, htmlwidgets, xts
Package: htmltools
Source: CRAN
Version: 0.3.6
Hash: eeba9fb36d4cb6cc66f060187102be41
Requires: Rcpp, digest
Package: htmlwidgets
Source: CRAN
Version: 0.8
Hash: e7a3c80acddc2412f96d616949e40bb8
Requires: jsonlite, yaml, htmltools
Package: httpuv
Source: CRAN
Version: 1.3.3
Hash: 81cab0e82a62025f180863eb4ddeeb20
Requires: Rcpp
Package: jsonlite
Source: CRAN
Version: 1.5
Hash: 9c51936d8dd00b2f1d4fe9d10499694c
Package: lattice
Source: CRAN
Version: 0.20-35
Hash: 26b9d7f0d0cb4e1d1bbb97f867c82d89
Package: magrittr
Source: CRAN
Version: 1.5
Hash: bdc4d48c3135e8f3b399536ddf160df4
Package: mime
Source: CRAN
Version: 0.5
Hash: 463550cf44fb6f0a2359368f42eebe62
Package: packrat
Source: CRAN
Version: 0.4.8-1
Hash: 6ad605ba7b4b476d84be6632393f5765
Package: plotrix
Source: CRAN
Version: 3.6-5
Hash: 6e32d6943523c20e336a8af5b48a17f0
Package: shiny
Source: CRAN
Version: 1.0.3
Hash: f133585c72ea31592f663e68c6ff0b3e
Requires: R6, digest, jsonlite, mime, sourcetools, xtable, httpuv,
Package: sourcetools
Source: CRAN
Version: 0.1.6
Hash: 226d56d7469587da40b0f96180e711b4
Package: xtable
Source: CRAN
Version: 1.8-2
Hash: 7293235cfcc14cdff1ce7fd1a0212031
Package: xts
Source: CRAN
Version: 0.9-7
Hash: fb3f81d7a2fa2323879b6b49722ddc5e
Requires: zoo
Package: yaml
Source: CRAN
Version: 2.1.14
Hash: c81230c3a7d9ba20607ad6b4331173d1
Package: zoo
Source: CRAN
Version: 1.8-0
Hash: df9711767f56f086e8a8d1f0fb926ff6
Requires: lattice
auto.snapshot: TRUE
use.cache: FALSE
print.banner.on.startup: auto
vcs.ignore.lib: TRUE
vcs.ignore.src: FALSE
load.external.packages.on.startup: TRUE
quiet.package.installation: TRUE
snapshot.recommended.packages: FALSE
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment