# Find source packages of reverse dependencies for given package(s). Only installed # packages are considered. pkgs <- commandArgs(trailingOnly=TRUE) # --- customize below (also in install_packages_for_checking.r) #CRAN_mirror <- "https://cran.r-project.org" #BIOC_mirror <- "https://master.bioconductor.org/packages/3.12" CRAN_mirror <- paste0("file:///", getwd(), "/mirror/CRAN") BIOC_mirror <- paste0("file:///", getwd(), "/mirror/BIOC") CRAN_bins <- paste0("file:///", getwd(), "/build/CRAN") BIOC_bins <- paste0("file:///", getwd(), "/build/BIOC") onlycran <- TRUE # --- customize above repos_src <- c(CRAN_mirror, paste0(BIOC_mirror, "/bioc"), paste0(BIOC_mirror, "/data/annotation"), paste0(BIOC_mirror, "/data/experiment"), paste0(BIOC_mirror, "/workflows")) curls_src <- paste0(repos_src, "/src/contrib") deps <- tools::dependsOnPkgs(pkgs, c("Depends", "Imports", "LinkingTo")) ap <- available.packages(curls_src) found <- ap[ ap[,"Package"] %in% deps, c("Repository", "Package", "Version")] if (nrow(found)) { if (onlycran) { iscran <- grepl(CRAN_mirror, found[,"Repository"]) found <- found[iscran,] } dummy <- apply(found, 1, function(x) cat(paste0(gsub("^file:///", "", x["Repository"]), "/", x["Package"], "_", x["Version"], ".tar.gz\n")) ) }