MyNixOS website logo
Description

Temporarily Change Project Root.

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.

wither

R-CMD-check

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)

Installation

You can install the development version of wither from GitHub with:

# install.packages("pak")
pak::pak("torbjorn/wither")

Example

with_here

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

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)
Metadata

Version

0.1.0

License

Unknown

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows