Skip to content

Commit

Permalink
use rlang's tricks to hide dep on pak
Browse files Browse the repository at this point in the history
  • Loading branch information
tanho63 committed Aug 9, 2023
1 parent 54b816f commit 5ed3243
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions R/utils_sitrep.R
Original file line number Diff line number Diff line change
Expand Up @@ -147,23 +147,25 @@ print.nflverse_sitrep <- function(x, ...) {

.sitrep_deps_pak <- function(packages){
ref <- NULL
pkg_status <- data.table::as.data.table(pak::pkg_status(packages))
pak_status <- rlang::env_get(rlang::ns_env("pak"), "pkg_status")
pak_deps <- rlang::env_get(rlang::ns_env("pak"), "pkg_deps")
pkg_status <- data.table::as.data.table(pak_status(packages))
pkg_status <- unique(pkg_status, by = "package")
pkg_spec <- data.table::fcoalesce(pkg_status$remotepkgref, pkg_status$package)

# Add any repositories found by pkg_status to the search list
# as well as cran.rstudio.com
pkg_repos <- unique(c(na.omit(pkg_status$repos), getOption("repos"), "https://cran.rstudio.com"))
pkg_repos <- unique(c(stats::na.omit(pkg_status$repos), getOption("repos"), "https://cran.rstudio.com"))
old_repos <- options(repos = pkg_repos)
on.exit(options(old_repos))

deps <- data.table::as.data.table(pak::pkg_deps(pkg_spec))[!ref %in% pkg_spec][["ref"]]
dep_status <- data.table::as.data.table(pak::pkg_status(deps))[,c("package", "version")]
deps <- data.table::as.data.table(pak_deps(pkg_spec))[!ref %in% pkg_spec][["ref"]]
dep_status <- data.table::as.data.table(pak_status(deps))[,c("package", "version")]

if(any(!deps %in% dep_status$package)) {
missing_pkgs <- setdiff(deps, dep_status$package)
rlang::check_installed(missing_pkgs, reason = "in scanned dependencies")
dep_status <- data.table::as.data.table(pak::pkg_status(deps))[,c("package", "version")]
dep_status <- data.table::as.data.table(pak_status(deps))[,c("package", "version")]
}

dep_status <- as.data.frame(dep_status)
Expand Down

0 comments on commit 5ed3243

Please sign in to comment.