These functions define a framework to register actions for which default sets of arguments can be defined when (lazy-)loading a package, and run later on, e.g., after the package is installed using dedicated commands.
setPackageExtraHandler
defines main action handler functions, for which
actions are defined as a set of arguments and registered using setPackageExtra
.
setPackageExtraHandler(handler, fun, ...)packageExtraHandler(handler = NULL, ...)
setPackageExtra(handler, extra, ...)
packageExtra(handler = NULL, extra = NULL, package = NULL, .wrap = FALSE)
packageExtraRunner(handler)
install.extras(
package,
extra = NULL,
handler = NULL,
...,
.verbose = getOption("verbose")
)
install.extrapackages(
package,
extra = NULL,
handler = NULL,
...,
.verbose = getOption("verbose")
)
the runner function associated with the newly registered handler,
as built by packageExtraRunner
.
name of a handler, e.g, 'install'
.
It must be unique across all handlers registered by any other packages.
handler function that will be called with the arguments registered
with packageExtra(name, ...)
extra arguments passed to internal function calls.
In packageExtraHandler
, these are passed to pkgreg_fetch
.
In setPackageExtra
, these define default arguments for the handler function.
These are overwritten by arguments in the call to runner function if any.
name of the extra action.
package name where to store/look for the internal registries. End users should not need to use this argument.
logical that indicates if a function that runs the extra action should be returned or only the default arguments
logical that indicates if verbose messages about the extra actions being run should be displayed.
packageExtraHandler()
: retrieves a given handler from the registry.
setPackageExtra()
: registers extra actions for a given handler.
For example, calling setPackageExtra('install', pkgs='non_CRAN_pkg', repos='http://non-standard-repo')
in a source file of package 'myPkg' registers the call
install.packages('non_CRAN_pkg', repos='http://non-standard-repo', ...)
in a registry internal to the package.
All calls to setPackageExtra('install', ...)
can then be run by the user, as
a post installation step via install.extrapackages('myPkg', ..)
.
packageExtra()
: retrieve a given extra action, either as its registry entry,
or as a function that would perform the given action.
packageExtraRunner()
: defines a function to run all or some of the actions registered
for a given handler in a given package.
For example, the function install.extrapackages
is the runner defined for the extra handler 'install'
via packageExtraRunner('install')
.
install.extras()
: runs all extra actions registered for a given package.
install.extrapackages()
: install sets of packages that can enhance a
package, but may not be available from CRAN.
It is defined as the extra handler for
the extra action handler 'install.packages'
.
All arguments in ...
are passed to install.packages
.
By default, packages that are already installed are not re-installed.
An extra argument force
allows to force their installation.
The packages are loaded if their installation is successful.