rfile.RdEvaluates and postprocesses an RSP document and outputs the final RSP document file.
# S3 method for default
rfile(file, path=NULL, output=NULL, workdir=NULL, type=NA, envir=parent.frame(),
args="*", postprocess=TRUE, ..., verbose=FALSE)Specifies the RSP file to processed, which can
be a file, a URL or a connection.
If a file, the path is prepended to the file, iff given.
A character string or a connection specifying where
output should be directed.
The default is a file with a filename where the file extension
(typically ".rsp") has been dropped from file
in the directory given by the workdir argument.
The working directory to use after parsing and
preprocessing, but while evaluating and postprocessing
the RSP document.
If argument output specifies an absolute pathname,
then the directory of output is used, otherwise the
current directory is used.
The default content type of the RSP document. By default, it
is inferred from the output filename extension, iff possible.
The environment in which the RSP document is
preprocessed and evaluated.
A named list of arguments assigned to the environment
in which the RSP string is parsed and evaluated.
See cmdArgs.
If TRUE, and a postprocessing method exists for
the generated RSP product, it is postprocessed as well.
Additional arguments passed to the RSP engine.
See Verbose.
Returns an RspProduct.
If argument output specifies a file, then this is
an RspFileProduct.
Using Rscript and rfile(), it is possible to process
an RSP file from the command line. For example,
Rscript -e "R.rsp::rfile('RSP_refcard.tex.rsp')"
parses and evaluates RSP_refcard.tex.rsp and output RSP_refcard.pdf in the current directory.
A CLI-friendly alternative to the above is:
Rscript -e R.rsp::rfile RSP_refcard.tex.rsp
path <- system.file("exData", package="R.rsp")
pathname <- rfile("random.txt.rsp", path=path,
output=file.path(tempdir(), "random.txt"))
print(pathname)
#> RspFileProduct:
#> Pathname: /tmp/henrik/RtmpVRjGW6/random.txt
#> File size: 32 bytes
#> Content type: text/plain
#> Has processor: FALSE
lines <- readLines(pathname, warn=FALSE)
cat(lines, collapse="\n")
#> A random integer in [1,100]: 76
file.remove(pathname)
#> [1] TRUE
# Passing arguments
path <- system.file("exData", package="R.rsp")
pathname <- rfile("random-args.txt.rsp", path=path, args=list(K=50),
output=file.path(tempdir(), "random-args.txt"))
print(pathname)
#> RspFileProduct:
#> Pathname: /tmp/henrik/RtmpVRjGW6/random-args.txt
#> File size: 31 bytes
#> Content type: text/plain
#> Has processor: FALSE
lines <- readLines(pathname, warn=FALSE)
cat(lines, collapse="\n")
#> A random integer in [1,50]: 37
file.remove(pathname)
#> [1] TRUE
if (FALSE) {
# Compile and display the main vignette (requires LaTeX)
if (isCapableOf(R.rsp, "latex")) {
path <- system.file("doc", package="R.rsp")
pdf <- rfile("Dynamic_document_creation_using_RSP.tex.rsp", path=path)
cat("Created document: ", pdf, "\n", sep="")
if (interactive()) browseURL(pdf)
}
}