Withr - Run Code 'With' Modified State
A set of functions to run code 'with' safely and temporarily modified global state.
Many of these functions were originally a part of the devtools package, this provides a simple package with limited dependencies to provide access to these functions.
with_collate()
- collation orderwith_dir()
- working directorywith_envvar()
- environment variableswith_libpaths()
- library pathswith_locale()
- any locale settingwith_makevars()
- Makevars variableswith_options()
- optionswith_par()
- graphics parameterswith_path()
- PATH environment variable
There is also a with_()
function to construct new with_*
functions if needed.
dir.create("test")
#> Warning in dir.create("test"): 'test' already exists
getwd()
#> [1] "/tmp/RtmpaPrDI5"
with_dir("test", getwd())
#> [1] "/tmp/RtmpaPrDI5/test"
getwd()
#> [1] "/tmp/RtmpaPrDI5"
unlink("test")
Sys.getenv("HADLEY")
#> [1] ""
with_envvar(c("HADLEY" = 2), Sys.getenv("HADLEY"))
#> [1] "2"
Sys.getenv("HADLEY")
#> [1] ""
with_envvar(c("A" = 1),
with_envvar(c("A" = 2), action = "suffix", Sys.getenv("A"))
)
#> [1] "1 2"