Skip to content
Prev 21221 / 398498 Next

commandArgs: feature request

Here's an updated version of commandArgs() that does what you want (only
verified on WinMe w/ R 1.5.0):

commandArgs <- function(excludeReserved=FALSE, os=NULL) {
  # Process argument 'os'
  if (is.null(os) || toupper(os) == "ANY")
    os <- c("unix", "mac", "windows")
  else if (tolower(os) == "current")
    os <- .Platform$OS.type;
  os <- tolower(os);
  if (any(is.na(match(os, c("unix", "mac", "windows")))))
    stop("Argument 'os' contains unknown values.");

  # Reserved R command line options according to
  # "An Introduction to R" for R v1.5.0:
  reservedArgs <- c();
  # a) Unix
  if ("unix" %in% os) {
    reservedArgs <- c(reservedArgs, "--help", "-h", "--version", "--save",
"--no-save", "--no-environ", "--no-site-file", "--no-init-file",
"--restore", "--no-restore", "--no-restore-data", "--no-restore-history",
"--vanilla", "--no-readline", "--min-vsize=.*", "--min-nsize=.*",
"--max-nsize=.*", "--quiet", "--silent", "-q", "--slave", "--verbose",
"--debugger=.*", "--gui=.*");
  # b) Macintosh
  } else if ("mac" %in% os) {
    reservedArgs <- c(reservedArgs, "--version", "--save", "--no-save",
"--no-init-file", "--restore", "--no-restore", "--no-restore-data",
"--no-restore-history", "--vanilla", "--min-vsize=.*", "--max-vsize=.*",
"--min-nsize=.*", "--max-nsize=.*", "--quiet", "--silent", "-q", "--slave",
"--verbose");
  # b) Windows
  } else if ("windows" %in% os) {
    reservedArgs <- c(reservedArgs, "--version", "--mdi", "--sdi",
"--no-mdi", "--save", "--no-save", "--no-site-file", "--no-init-file",
"--no-environ", "--restore", "--no-restore", "--no-restore-data",
"--no-restore-history", "--vanilla", "--min-vsize=.*", "--max-vsize=.*",
"--min-nsize=.*", "--max-nsize=.*", "--max-mem-size=.*", "--quiet",
"--silent", "-q", "--slave", "--verbose", "--ess");
  }

  # Flag reserved arguments
  args <- .Internal(commandArgs());
  reservedArgs <- paste("^", unique(reservedArgs), "$", sep="");
  isReserved <- logical(length(args));
  for (rarg in reservedArgs)
    isReserved <- isReserved | (regexpr(rarg, args) != -1);
  attr(args, "isReserved") <- isReserved;

  if (excludeReserved == TRUE)
    args <- args[!attr(args, "isReserved")];

  args;
} # commandArgs()

Feel free to use it anywhere!

Henrik Bengtsson

Dept. of Mathematical Statistics @ Centre for Mathematical Sciences
Lund Institute of Technology/Lund University, Sweden (+2h UTC)
Office: P316, +46 46 222 9611 (phone), +46 46 222 4623 (fax)
h b @ m a t h s . l t h . s e, http://www.maths.lth.se/bioinformatics/
http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
_._


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._