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
dratRepo
Path to git repo. Defaults to ~/git/drat
dratBranch
The 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