insertPackage: Insert a package source or binary file into a drat repository

View source: R/insertPackage.R

insertPackageR Documentation

Insert a package source or binary file into a drat repository

Description

R can use multiple archives: CRAN, BioConductor and Omegahat have been supported for years. It is equally easy to add local archives from the same machine, or local network, or university / company network as well as other publically available repositories. This function aids in the process, and defaults to inserting a given source archive into a given repository.

Usage

insertPackage(file, repodir = getOption("dratRepo", "~/git/drat"),
  commit = FALSE, pullfirst = FALSE, action = c("none", "archive",
  "prune"), location = getOption("dratBranch", "gh-pages"),
  OSflavour = character(), ...)

insertPackages(file, ...)

insert(...)

Arguments

file

One or more R package(s) in source or binary format

repodir

A local directory corresponding to the repository top-level directory.

commit

Either boolean toggle to select automatic git operations ‘add’, ‘commit’, and ‘push’ or, alternatively, a character variable can be used to specify a commit message; this also implies the ‘TRUE’ values in other contexts.

pullfirst

Boolean toggle to call git pull before inserting the package.

action

A character string containing one of: “none” (the default; add the new package into the repo, effectively masking previous versions), “archive” (place any previous versions into a package-specific archive folder, creating such an archive if it does not already exist), or “prune” (calling pruneRepo).

location

A character variable with the GitHub Pages location: either “gh-pages” indicating a branch of that name, or “docs/” directory in the main branch. The default value can be overridden via the “dratBranch” option.

OSflavour

an optional string naming the OSflavour, which is otherwise read as the second element of the 'Built' field of the file. For packages that do not need compilation on macOS for R >= 4.3 the 'Built' field is empty in the DESCRIPTION in a binary file (tgz), in which case it can be useful to set the OSflavour e.g. by the value of R.Version()$platform, so that insertPackages inserts the binary into the appropriate sub folder (under bin/maxosx).

...

For insert the aliases variant, a catch-all collection of parameters. For insertPackage arguments passed to write_PACKAGES currently include latestOnly, for which the default value is set here to FALSE. See write_PACKAGES.

Details

This function inserts the given (source or binary) package file into the given (local) package repository and updates the index. By setting the commit option to TRUE, one can then push to a remote git code repository. If the git2r package is installed, it is used for the interaction with the git repository; otherwise the git shell command is used.

An aliased function insert is also available, but not exported via NAMESPACE to not clobber a possibly unrelated function; use it via drat:::insert().

The function also checks for a top-level index.html file to ensure external tests against the repository (as for example done by CRAN if you list the repository as an ‘Additional_repositories’ in a package) do not return a ‘404’ error. If missing, a simple one-line example is shown.

Value

NULL is returned.

Options

Set using options

dratRepo

Path to git repo. Defaults to ~/git/drat

dratBranch

The git branch to store packages on. Defaults to gh-pages

Author(s)

Dirk Eddelbuettel

Examples

## Not run: 
  insertPackage("foo_0.2.3.tar.gz")   # inserts into (default) repo
  insertPackage("foo_0.2.3.tar.gz", "/nas/R/")  # ... into local dir

## End(Not run)
## Not run: 
  insertPackage("foo_0.2.3.tar.gz", action = "prune")   # prunes any older copies
  insertPackage("foo_0.2.3.tar.gz", action = "archive")   # archives any older copies

## End(Not run)

eddelbuettel/drat documentation built on Feb. 2, 2024, 9:25 p.m.