R/get_pkg_dependencies.R

Defines functions get_pkg_dependencies

Documented in get_pkg_dependencies

#' Get package dependencies
#'
#' @param pkgs character vector with package names
#' @param library_path character vector with path(s) to R library (default: .libPaths())
#' @param dbg logical if debug should be shown (default: TRUE)
#' @param ... additional arguments passed to packrat:::getPackageDependencies()
#' @return list with package dependencies
#' @importFrom stats setNames
#' @export
#' @examples
#' \dontrun{
#' pkgs <- pkgmeta::get_github_packages()
#' get_pkg_dependencies(pkgs$name)
#' }
#'
get_pkg_dependencies <- function(pkgs,
                                 library_path = .libPaths(),
                                 dbg = TRUE,
                                 ...) {


  pkgs_installed <- pkgs[pkgs %in% rownames(installed.packages(lib.loc = library_path))]

  stats::setNames(lapply(pkgs_installed, function(pkg) {
    kwb.utils::catAndRun(sprintf("Getting recursive dependencies for '%s'", pkg),
                         expr = {
                           packrat:::getPackageDependencies(pkg,
                                                            lib.loc = library_path,
                                                            ...
                                                            )
                           },
                         dbg = dbg)}),
    nm = pkgs_installed)

}
KWB-R/pkgmeta documentation built on March 27, 2024, 4:28 p.m.