config_dir
returns the absolute, normalized path to the configuration directory of a program/package/app based on an optional app-specific commandline argument, an optional app-specific environment variable and the XDG Base Directory Specification
Usage
config_dir(
app_name,
cl_arg = commandArgs()[grep("--config-dir", commandArgs()) + 1],
env_var = Sys.getenv(toupper(paste0(app_name, "_config_dir()"))),
create = FALSE,
sep = "/"
)
Details
The following algorithm is used to determine the location of the configuration directory for application $app_name
:
If parameter
cl_arg
is a non-empty string, return itElse, if parameter
env_var
is a non-empty string, return itElse, if environment variable (EV)
XDG_CONFIG_HOME
exists, return$XDG_CONFIG_HOME/$app_name
Else, if EV
HOME
exists, return$HOME/.config/{app_name}
Else, if EV
USERPROFILE
exists, return$USERPROFILE/.config/{app_name}
Else, return
$WD/.config/{app-name}
where $WD
equals the current working directory and the notation $VAR
is used to specify the value of a parameter or environment variable VAR.