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("torbjorn/wither") pak
with_here()
evaluates an expression under a temporarily
different here root():
library(here)
library(wither)
<- here()
was
<- tempfile()
d dir.create(d)
# have here() be somewhere else for an expression
<- with_here(d, here())
is_now
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)
<- here()
was
<- tempfile()
d dir.create(d)
local({
# have here() be somewhere else for the rest of the block
local_here(d)
<- here()
is_now
stopifnot(normalizePath(was) != normalizePath(is_now))
})
# clean up
unlink(d, recursive=TRUE)