R/create_pkg_codemeta.R

Defines functions create_pkg_codemeta

Documented in create_pkg_codemeta

#' Create codemeta
#'
#' @param pkgs data frame with R packages (default: get_github_packages())
#' @param libpath libpath  (default: Sys.getenv("R_LIBS_USER"))
#' @param dbg should debug messages be printed? (default: TRUE)
#' @return codemetar object for R packages
#' @importFrom codemetar create_codemeta
#' @importFrom glue glue
#' @importFrom utils installed.packages
#' @export
create_pkg_codemeta <- function(pkgs = get_github_packages(),
                                libpath = Sys.getenv("R_LIBS_USER"),
                                dbg = TRUE) {
  kwb.utils::catAndRun("Creating codemeta object",
    expr = {
      withr::with_libpaths(
        new = libpath,
        code = {
          lapply(
            pkgs$name,
            function(x) {
              if (x %in% utils::installed.packages()[, "Package"]) {
                print(glue::glue("Writing codemeta for R package {x}"))
                codemetar::create_codemeta(pkg = x)
              }
              else {
                message(sprintf("Package '%s' is not installed in
  %s", x, libpath))
              }
            }
          )
        }
      )
    },
    dbg = dbg
  )
}
KWB-R/pkgmeta documentation built on March 27, 2024, 4:28 p.m.