rcmd
Run an R CMD command
Run an R CMD command form within R. This will usually start another R process, from a shell script.
Usage
rcmd(cmd, cmdargs = character(), libpath = .libPaths(),
repos = default_repos(), stdout = NULL, stderr = NULL,
poll_connection = TRUE, echo = FALSE, show = FALSE,
callback = NULL, block_callback = NULL, spinner = show &&
interactive(), system_profile = FALSE, user_profile = FALSE,
env = rcmd_safe_env(), timeout = Inf, wd = ".",
fail_on_status = FALSE, ...)rcmd_safe(cmd, cmdargs = character(), libpath = .libPaths(),
repos = default_repos(), stdout = NULL, stderr = NULL,
poll_connection = TRUE, echo = FALSE, show = FALSE,
callback = NULL, block_callback = NULL, spinner = show &&
interactive(), system_profile = FALSE, user_profile = FALSE,
env = rcmd_safe_env(), timeout = Inf, wd = ".",
fail_on_status = FALSE, ...)
Arguments
- cmd
Command to run. See
R --help
from the command line for the various commands. In the current version of R (3.2.4) these are: BATCH, COMPILE, SHLIB, INSTALL, REMOVE, build, check, LINK, Rprof, Rdconv, Rd2pdf, Rd2txt, Stangle, Sweave, Rdiff, config, javareconf, rtags.- cmdargs
Command line arguments.
- libpath
The library path.
- repos
The repos option. If
NULL
, then no repos option is set. This options is only used ifuser_profile
orsystem_profile
is setFALSE
, as it is set using the system or the user profile.- stdout
Optionally a file name to send the standard output to.
- stderr
Optionally a file name to send the standard error to. It may be the same as
stdout
, in which case standard error is redirected to standard output. It can also be the special string"2>&1"
, in which case standard error will be redirected to standard output.- poll_connection
Whether to have a control connection to the process. This is used to transmit messages from the subprocess to the parent.
- echo
Whether to echo the complete command run by
rcmd
.- show
Logical, whether to show the standard output on the screen while the child process is running. Note that this is independent of the
stdout
andstderr
arguments. The standard error is not shown currently.- callback
A function to call for each line of the standard output and standard error from the child process. It works together with the
show
option; i.e. ifshow = TRUE
, and a callback is provided, then the output is shown of the screen, and the callback is also called.- block_callback
A function to call for each block of the standard output and standard error. This callback is not line oriented, i.e. multiple lines or half a line can be passed to the callback.
- spinner
Whether to show a calming spinner on the screen while the child R session is running. By default it is shown if
show = TRUE
and the R session is interactive.- system_profile
Whether to use the system profile file.
- user_profile
Whether to use the user's profile file.
- env
Environment variables to set for the child process.
- timeout
Timeout for the function call to finish. It can be a base::difftime object, or a real number, meaning seconds. If the process does not finish before the timeout period expires, then a
system_command_timeout_error
error is thrown.Inf
means no timeout.- wd
Working directory to use for running the command. Defaults to the current working directory.
- fail_on_status
Whether to throw an R error if the command returns with a non-zero status code. By default no error is thrown.
- ...
Extra arguments are passed to
processx::run()
.
Details
Starting from callr
2.0.0, rcmd()
has safer defaults, the same as
the rcmd_safe()
default values. Use rcmd_copycat()
for the old
defaults.
Value
A list with the command line $command
),
standard output ($stdout
), standard error (stderr
),
exit status ($status
) of the external R CMD
command, and
whether a timeout was reached ($timeout
).
See Also
Other R CMD commands: rcmd_bg
,
rcmd_copycat
Examples
# NOT RUN {
rcmd("config", "CC")
# }