#!/bin/sh # Shell wrapper for R executable. R_HOME_DIR=/usr/lib/R if test -n "${R_HOME}" && \ test "${R_HOME}" != "${R_HOME_DIR}"; then echo "WARNING: ignoring environment value of R_HOME" fi R_HOME="${R_HOME_DIR}" export R_HOME R_SHARE_DIR=/usr/share/R export R_SHARE_DIR R_INCLUDE_DIR=/usr/include/R export R_INCLUDE_DIR R_DOC_DIR=/usr/share/R/doc export R_DOC_DIR # Since this script can be called recursively, we allow R_ARCH to # be overridden from the environment. # This script is shared by parallel installs, so nothing in it should # depend on the sub-architecture except the default here. : ${R_ARCH=} usage=" Usage: R [options] [< infile] [> outfile] or: R CMD command [arguments] Start R, a system for statistical computation and graphics, with the specified options, or invoke an R tool via the 'R CMD' interface. Options: -h, --help Print short help message and exit --version Print version info and exit --encoding=ENC Specify encoding to be used for stdin RHOME Print path to R home directory and exit --save Do save workspace at the end of the session --no-save Don't save it --no-environ Don't read the site and user environment files --no-site-file Don't read the site-wide Rprofile --no-init-file Don't read the .Rprofile or ~/.Rprofile files --restore Do restore previously saved objects at startup --no-restore-data Don't restore previously saved objects --no-restore-history Don't restore the R history file --no-restore Don't restore anything --vanilla Combine --no-save, --no-restore, --no-site-file, --no-init-file and --no-environ --no-readline Don't use readline for command-line editing --min-vsize=N Set vector heap min to N bytes; '4M' = 4 MegaB --max-vsize=N Set vector heap max to N bytes; --min-nsize=N Set min number of cons cells to N --max-nsize=N Set max number of cons cells to N --max-ppsize=N Set max size of protect stack to N -q, --quiet Don't print startup message --silent Same as --quiet --slave Make R run as quietly as possible --verbose Print more information about progress -d, --debugger=NAME Run R through debugger NAME --debugger-args=ARGS Pass ARGS as arguments to the debugger -g, --gui=TYPE Use TYPE as GUI; possible values are 'X11' (default), 'Tk' and (with package gnomeGUI) 'gnome' --arch=NAME Specify a sub-architecture --args Skip the rest of the command line Commands: BATCH Run R in batch mode COMPILE Compile files for use with R SHLIB Build shared library for dynamic loading INSTALL Install add-on packages REMOVE Remove add-on packages build Build add-on packages check Check add-on packages LINK Front-end for creating executable programs Rprof Post-process R profiling files Rdconv Convert Rd format to various other formats Rd2dvi Convert Rd format to DVI/PDF Rd2txt Convert Rd format to pretty text Sd2Rd Convert S documentation to Rd format config Obtain configuration information about R Please use 'R CMD command --help' to obtain further information about the usage of 'command'. Report bugs to ." ### We also have this in compiled code -> use that one to always be in sync # version="R 2.3.1 (2006-06-01). # Copyright (C) 2006 R Development Core Team # R is free software and comes with ABSOLUTELY NO WARRANTY. # You are welcome to redistribute it under the terms of the GNU # General Public License. For more information about these matters, # see http://www.gnu.org/copyleft/gpl.html." error () { echo "ERROR: $*" >&2 exit 1 } ### Argument loop args= debugger= debugger_args= gui= while test -n "${1}"; do case ${1} in RHOME|--print-home) echo "${R_HOME}"; exit 0 ;; CMD) shift; export R_ARCH . ${R_HOME}/etc${R_ARCH}/ldpaths exec sh "${R_HOME}/bin/Rcmd" "${@}" ;; -g|--gui) if test -n "`echo ${2} | sed 's/^-.*//'`"; then gui="${2}" args="${args} ${1} ${2}" shift else error "option '${1}' requires an argument" fi ;; --gui=*) gui=`echo "${1}" | sed -e 's/[^=]*=//'` args="${args} ${1}" ;; -d|--debugger) if test -n "`echo ${2} | sed 's/^-.*//'`"; then debugger="${2}"; shift else error "option '${1}' requires an argument" fi ;; --debugger=*) debugger=`echo "${1}" | sed -e 's/[^=]*=//'` ;; --debugger-args=*) debugger_args=`echo "${1}" | sed -e 's/[^=]*=//'` ;; -h|--help) echo "${usage}"; exit 0 ;; ## use the version in compiled code to always be in sync # --version) # echo "${version}"; exit 0 ;; --args) break ;; --arch) if test -n "`echo ${2} | sed 's/^-.*//'`"; then R_ARCH="/${2}" shift else error "option '${1}' requires an argument" fi ;; --arch=*) r_arch=`echo "${1}" | sed -e 's/[^=]*=//'` R_ARCH="/${r_arch}" ;; *) args="${args} ${1}" ;; esac shift done . ${R_HOME}/etc${R_ARCH}/ldpaths R_binary="${R_HOME}/bin/exec${R_ARCH}/R" export R_ARCH case "${gui}" in gnome|GNOME) R_binary="${R_HOME}/bin/exec${R_ARCH}/Rgnome" ;; Tk|tk|X11|x11) ;; "") ;; *) error "unknown GUI ${gui}" esac ## R_HOME may have moved, so check if test -x "${R_HOME}"; then : else error "R_HOME ('${R_HOME}') not found" fi ## Startup if test -z "${debugger}"; then exec "${R_binary}" ${args} "${@}" else ## Ideally, we would like the debugger to start R with additional ## ('inferior') arguments, but not all debuggers can do this. We know ## about valgrind and some versions of GDB , and deal with these. ## Otherwise, to be on the safe side, we disregard non-debugger ## command line args. args_ok=no case "`${debugger} --version 2>/dev/null`" in "GNU gdb"*) if ${debugger} --help 2>/dev/null | \ grep ' *--args' >/dev/null; then args_ok=yes debugger_args="${debugger_args} --args" fi ;; valgrind*) args_ok=yes ;; esac if test -n "${args}${*}" && test "${args_ok}" = no; then args=`expr "${args} ${*}" : " *\(.*\)"` echo "*** Further command line arguments ('${args}') disregarded" echo "*** (maybe use 'run ${args}' from *inside* ${debugger})" echo "" exec ${debugger} ${debugger_args} "${R_binary}" else exec ${debugger} ${debugger_args} "${R_binary}" ${args} "${@}" fi fi ### Local Variables: *** ### mode: sh *** ### sh-indentation: 2 *** ### End: ***