### This needs a local (partial) CRAN mirror or Internet access
## Specifically, needs web/packages/packages.rds and web/checks/*.rds

## This may need to download, so increase the timeout.
options(warn = 1L, timeout = max(600, getOption('timeout')))

.ptime <- proc.time()

## Look up CRAN mirror in the same way the functions do.
## Uses R_CRAN_WEB if set, otherwise getOption('repos')["CRAN"]
## then the (possibly local) 'repositories' file
## and if still unset, https://CRAN.R-project.org
mirror <- tools:::CRAN_baseurl_for_web_area()
message("Using CRAN mirror ",  sQuote(mirror))

## Sanity check: the examples use /web/packages/packages.rds and
## web/checks/check_*.rds,
## but partial mirrors for package installation only need src/contrib.
## This would fail with a file:// mirror but provides a cheap check
## of the availability of a https:// one.
if(!startsWith(mirror, "file://")) {
    foo <- tryCatch(readLines(paste0(mirror, "/web/packages")),
                    error = function(e) {
                    message(conditionMessage(e))
                    ## and bail out
                    cat("Time elapsed: ", proc.time() - .ptime,"\n")
                    q("no")
    })
}

## no longer conditionalized on Internet access
library(tools)
example("CRAN_package_db", run.donttest = TRUE)

cat("Time elapsed: ", proc.time() - .ptime,"\n")