R/require_with_dep.R

Defines functions require_with_dep

Documented in require_with_dep

#' @importFrom tools package_dependencies
#' @importFrom utils installed.packages
#' @export 
#' @rdname library_with_dep
#' 
require_with_dep <-
function(package, 
         lib.loc = NULL,
         quietly = FALSE,
         warn.conflicts = TRUE, 
         character.only = FALSE, 
         which = "Imports",
         recursive = FALSE, 
         reverse = FALSE, 
         verbose = getOption("verbose"))
{
  if (!character.only) {
    package <- as.character(substitute(package))
  }
  
  ip <- utils::installed.packages()
  pd <- tools::package_dependencies(package, 
                                    ip, 
                                    which = which, 
                                    recursive = recursive, 
                                    reverse = reverse, 
                                    verbose = verbose)
  pd <- pd[[package]]
  for (p in c(package, pd)) {
    require(p, 
            lib.loc = lib.loc, 
            quietly = quietly,
            warn.conflicts = warn.conflicts, 
            character.only = TRUE)
  }
  invisible(NULL)
}
paulponcet/bazar documentation built on July 15, 2019, 5:28 a.m.