#!@R_SHELL@ # Shell wrapper for R executable. R_HOME_DIR= if test "${R_HOME_DIR}" = "@prefix@/@LIBnn@/R"; then case "@R_OS@" in linux*) run_arch=`uname -m` case "$run_arch" in x86_64|mips64|ppc64|powerpc64|sparc64|s390x) libnn=lib64 libnn_fallback=lib ;; *) libnn=lib libnn_fallback=lib64 ;; esac if [ -x "@prefix@/${libnn}/R/bin/exec/R" ]; then R_HOME_DIR="@prefix@/${libnn}/R" elif [ -x "@prefix@/${libnn_fallback}/R/bin/exec/R" ]; then R_HOME_DIR="@prefix@/${libnn_fallback}/R" ## else -- leave alone (might be a sub-arch) fi ;; esac fi 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="${R_HOME_DIR}/share" export R_SHARE_DIR R_INCLUDE_DIR="${R_HOME_DIR}/include" export R_INCLUDE_DIR R_DOC_DIR="${R_HOME_DIR}/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=@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 --encoding ENC 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 user R profile --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 --max-ppsize=N Set max size of protect stack to N --min-nsize=N Set min number of fixed size obj's (\"cons cells\") to N --min-vsize=N Set vector heap minimum to N bytes; '4M' = 4 MegaB -q, --quiet Don't print startup message --silent Same as --quiet -s, --no-echo Make R run as quietly as possible --interactive Force an interactive session --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 TYPE, --gui=TYPE Use TYPE as GUI; possible values are 'X11' (default) and 'Tk'. --arch=NAME Specify a sub-architecture --args Skip the rest of the command line -f FILE, --file=FILE Take input from 'FILE' -e EXPR Execute 'EXPR' and exit FILE may contain spaces but not shell metacharacters. 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 Rd2pdf Convert Rd format to PDF Rd2txt Convert Rd format to pretty text Stangle Extract S/R code from Sweave documentation Sweave Process Sweave documentation Rdiff Diff R output ignoring headers etc config Obtain configuration information about R javareconf Update the Java configuration variables rtags Create Emacs-style tag files from C, R, and Rd files Please use 'R CMD command --help' to obtain further information about the usage of 'command'. Options --arch, --no-environ, --no-init-file, --no-site-file and --vanilla can be placed between R and CMD, to apply to R processes run by 'command' Report bugs at ." ## some systems have a more portable sed, e.g. /usr/xpg4/bin/sed on Solaris, ## so make sure that is used. SED=@SED@ export SED 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 ;; --args) break ;; --arch) if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then R_ARCH="/${2}" shift else error "option '${1}' requires an argument" fi ## check sub-architecture here for a better error message if ! test -d ${R_HOME}/etc${R_ARCH}; then error "sub-architecture '${1}' is not installed" fi ;; --arch=*) r_arch=`echo "${1}" | ${SED} -e 's/[^=]*=//'` R_ARCH="/${r_arch}" ## check sub-architecture here for a better error message if ! test -d ${R_HOME}/etc${R_ARCH}; then error "sub-architecture '${r_arch}' is not installed" fi ;; -e) if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then a=`(echo "${2}" && echo) | ${SED} -e 's/ /~+~/g' | \ ${SED} -e :a -e N -e '$!ba' -e 's/\n/~n~/g' -e 's/~n~$//g'` shift else error "option '${1}' requires a non-empty argument" fi args="${args} -e $a" ;; -f) if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then a=`echo "${2}" | ${SED} -e 's/ /~+~/g'`; shift else error "option '${1}' requires a filename argument" fi args="${args} -f $a" ;; --file=*) a=`echo "${1}" | ${SED} -e 's/[^=]*=//' | ${SED} -e 's/ /~+~/g'` args="${args} --file=$a" ;; --no-environ) R_ENVIRON='' export R_ENVIRON R_ENVIRON_USER='' export R_ENVIRON_USER args="${args} ${1}" ;; --no-site-file) R_PROFILE='' export R_PROFILE args="${args} ${1}" ;; --no-init-file) R_PROFILE_USER='' export R_PROFILE_USER args="${args} ${1}" ;; --vanilla) R_ENVIRON='' export R_ENVIRON R_ENVIRON_USER='' export R_ENVIRON_USER R_PROFILE='' export R_PROFILE R_PROFILE_USER='' export R_PROFILE_USER args="${args} ${1}" ;; *) 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 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}" @R_BATCHSAVE@ ${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: ***