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")
)

Arguments

handler

name of a handler, e.g, 'install'. It must be unique across all handlers registered by any other packages.

fun

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.

extra

name of the extra action.

package

package name where to store/look for the internal registries. End users should not need to use this argument.

.wrap

logical that indicates if a function that runs the extra action should be returned or only the default arguments

.verbose

logical that indicates if verbose messages about the extra actions being run should be displayed.

Value

the runner function associated with the newly registered handler, as built by packageExtraRunner.

Functions

  • 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.