thisfile: Determines the path of the currently running script in...

View source: R/thisfile.R

thisfileR Documentation

Determines the path of the currently running script in terminal

Description

R does not store nor export the path of the currently running script. This is an attempt to circumvent this limitation by applying heuristics (such as call stack and argument inspection) that work in many cases. CAVEAT: Use this function only if your workflow does not permit other solution: if a script needs to know its location, it should be set outside the context of the script if possible.

Usage

thisfile()

thisfile_source()

thisfile_r()

thisfile_rscript()

thisfile_knit()

Details

This functions currently work only if the script was sourced, processed with knitr, or run with Rscript or using the --file parameter to the R executable. For code run with Rscript, the exact value of the parameter passed to Rscript is returned.

Value

The path of the currently running script, NULL if it cannot be determined.

Note

These functions were migrated from r-lib/rprojroot.

Author(s)

Kirill Müller, Hadley Wickham, Michael R. Head

References

https://stackoverflow.com/q/1815606/946850

See Also

base::source(), utils::Rscript(), base::getwd()

Examples


if( !interactive() )
  thisfile()

# using in terminal ( with pipe() )

  # open a temp file
   tf <- tempfile(fileext = '.R')

  # call to write to temp file
   f <- 'cat(whereami::thisfile(), "\n", sep = "")'

  # write to the file
   cat(f,file = tf)

  # create an R call to terminal
   fcmd <- sprintf('"%s" --slave --vanilla --no-save -f %s',R.home('bin/R'),tf)

  # run the call
   p <- pipe(fcmd)

  # read the output
   readLines(p)

  # cleanup
   close(p)
   unlink(tf)


whereami documentation built on Dec. 28, 2022, 2:40 a.m.