Title: Determine a Script's Filename from Within the Script Itself
Description: A small set of functions wrapping up the call stack and command line inspection needed to determine a running script's filename from within the script itself.
Version: 1.0.1
License: MIT + file LICENSE
URL: https://github.com/MullinsLab/scriptName
BugReports: https://github.com/MullinsLab/scriptName/issues
Imports: rlang (≥ 0.1.0), purrr (≥ 0.2.3)
Suggests: testthat, devtools
RoxygenNote: 6.1.1
Encoding: UTF-8
NeedsCompilation: no
Packaged: 2019-06-19 06:36:17 UTC; tom
Author: Thomas Sibley [aut, cre], University of Washington [cph], Travers Ching [ctb]
Maintainer: Thomas Sibley <trsibley@uw.edu>
Repository: CRAN
Date/Publication: 2019-06-19 07:40:03 UTC

Determine a script's filename from within the script itself

Description

A small set of functions wrapping up the call stack and command line inspection needed to determine a running script's filename from within the script itself.

Usage

current_filename()

current_source_filename()

current_cli_filename()

Details

current_filename() returns the result of current_source_filename() if not NULL, otherwise the result of current_cli_filename(), which might be NULL. You should use this wrapper function rather than the more-specific functions unless you have a very specific need.

current_source_filename() returns the filename from the most recent call to source in the current call stack. From within a sourced script, this is the filename of the script itself.

current_cli_filename() returns the filename found on the command line invocation of R or Rscript. This may or may not be the caller's file if there's been an intervening source.

Value

A character vector of length 1 if a script name can be found, otherwise NULL. No manipulation is done to the filename, so it may be relative or absolute.

Examples

# Put this in example.R and try running source("example.R")
# and `Rscript example.R`
filename <- current_filename()
print(filename)