Lets you temporarily execute an expression or a local block with a different here() root in the 'here' package. This is useful for sourcing code in other projects which expect the root directory of here() to be the project directory of those projects. This may be the case with git submodules for example.
Run a block or expression temporarily under a different here() root.
This is useful if you need to source R code from another project for example (as might be the case with git submodules)
You can install the development version of wither from GitHub with:
# install.packages("pak")
pak::pak("torbjorn/wither")
with_here() evaluates an expression under a temporarily different here
root():
library(here)
library(wither)
was <- here()
d <- tempfile()
dir.create(d)
# have here() be somewhere else for an expression
is_now <- with_here(d, here())
stopifnot(normalizePath(was) != normalizePath(is_now))
# clean up
unlink(d, recursive=TRUE)
local_here() evaluates the remainder of a block under a temporarily
different here root():
library(here)
library(wither)
was <- here()
d <- tempfile()
dir.create(d)
local({
# have here() be somewhere else for the rest of the block
local_here(d)
is_now <- here()
stopifnot(normalizePath(was) != normalizePath(is_now))
})
# clean up
unlink(d, recursive=TRUE)