Skip to content

Instantly share code, notes, and snippets.

@jjallaire
Created December 7, 2012 18:50
Show Gist options
  • Select an option

  • Save jjallaire/4235475 to your computer and use it in GitHub Desktop.

Select an option

Save jjallaire/4235475 to your computer and use it in GitHub Desktop.
package updates required
loadedPackageUpdateRequired <- function(pkgs) {
if (any(pkgs %in% loadedNamespaces())) {
return(TRUE)
}
else {
# compute dependent packages
avail <- available.packages()
if (getRversion() >= "2.15")
deps <- tools:::package_dependencies(pkgs, db = avail, recursive = TRUE)
else
deps <- tools:::.package_dependencies(pkgs, db = avail, recursive = TRUE)
deps <- unique(as.character(c(deps, recursive=TRUE)))
# exclude built in R packages (e.g. tools, utils, methods)
deps <- intersect(deps, row.names(avail))
# check whether a loaded package will be updated
loadedDeps <- intersect(deps, loadedNamespaces())
return(length(loadedDeps) > 0)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment