diff --git a/R/list_depends.R b/R/list_depends.R index 82c777b..ac7eacd 100644 --- a/R/list_depends.R +++ b/R/list_depends.R @@ -3,7 +3,7 @@ allPackages <- installed.packages() allPackages <- as.data.frame(allPackages) packages <- allPackages[allPackages$Package %in% packages,] - packages <- allPackages[,c("Package", "Version", "Imports")] + packages <- packages[,c("Package", "Version", "Imports")] packages$Imports <- gsub(packages$Imports, pattern = "\n", replacement = " ") packages$Imports <- strsplit(packages$Imports, ", ") packages <- data.frame( @@ -31,9 +31,22 @@ #' packages. #' #' @param packages A character vector of packages to find dependencies of +#' @param fullTree A boolean to select the return type (See details) +#' +#' The fullTree parameter can be used to provide only the packages and versions +#' required to re-build an environment of dependencies for the provided packages +#' or a table capable of being used to construct a full dependency tree. #' #' @return A data frame with the dependency tree #' @export -list_depends <- function(packages) { - .list_depends(packages, gen = 0) +list_depends <- function(packages, fullTree = FALSE) { + depends <- .list_depends(packages, gen = 0) + if (fullTree) { + return(depends) + } + depends <- depends[,c("package", "version")] + depends <- unique(depends) + depends <- depends[sort(depends$package, index.return = TRUE)$ix,] + row.names(depends) <- 1:nrow(depends) + return(depends) } \ No newline at end of file diff --git a/man/list_depends.Rd b/man/list_depends.Rd index dfc4eb3..6d04a85 100644 --- a/man/list_depends.Rd +++ b/man/list_depends.Rd @@ -5,10 +5,16 @@ \title{Recursively find all the installed dependencies of one or more installed packages.} \usage{ -list_depends(packages) +list_depends(packages, fullTree = FALSE) } \arguments{ \item{packages}{A character vector of packages to find dependencies of} + +\item{fullTree}{A boolean to select the return type (See details) + +The fullTree parameter can be used to provide only the packages and versions +required to re-build an environment of dependencies for the provided packages +or a table capable of being used to construct a full dependency tree.} } \value{ A data frame with the dependency tree