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.
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(...)
NULL is returned.
One or more R package(s) in source or binary format
A local directory corresponding to the repository top-level directory.
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.
Boolean toggle to call git pull before inserting the package.
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).
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.
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.
Set using options
dratRepoPath to git repo. Defaults to ~/git/drat
dratBranchThe git branch to store packages on. Defaults to gh-pages
Dirk Eddelbuettel
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.
if (FALSE) {
insertPackage("foo_0.2.3.tar.gz") # inserts into (default) repo
insertPackage("foo_0.2.3.tar.gz", "/nas/R/") # ... into local dir
}
if (FALSE) {
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
}
Run the code above in your browser using DataLab