R/url-packages.R

Defines functions url_PACKAGES_cache wood_url_packages

Documented in wood_url_packages

#' List available packages in any repository
#'
#' @description This function queries any online repository for a list of
#' available packages. They are returned as a vector of strings, each element
#' being a package name. The data is retrieved from `/src/contrib/PACKAGES`
#' or `/src/contrib/PACKAGES.gz` file.
#'
#' @template repository
#'
#' @return A character vector of available packages.
#'
#' @examples
#' \donttest{
#' wood_url_packages("http://www.omegahat.net/R")
#' # Trailing slashes are removed
#' wood_url_packages("http://www.omegahat.net/R/")
#' }
#'
#' @family url
#' @family packages
#' @export
wood_url_packages <- function(repository) {
  assert_param_url_repo(repository)

  packages <- vapply(
    url_PACKAGES_cache(repository), `[[`, character(1), "Package"
  )
  unique(packages)
}

#' @importFrom digest digest
url_PACKAGES_cache <- function(repository) {
  repository <- remove_trailing_slash(repository)

  with_cache({
    download_repo_data(paste(repository, "src", "contrib", sep = "/"))
  }, "PACKAGES", digest(repository))
}

Try the woodendesc package in your browser

Any scripts or data that you put into this service are public.

woodendesc documentation built on April 18, 2023, 5:09 p.m.