tests/testthat/helper-toolchain.R

# Toolchain is a string, so can be read as is
toolchain <- Sys.getenv("REXTENDR_TOOLCHAIN")
if (!is.null(toolchain) && nzchar(toolchain)) {
  options(rextendr.toolchain = toolchain)
  message(
    paste0(
      ">> {rextendr}: Using toolchain from 'REXTENDR_TOOLCHAIN': ",
      toolchain
    )
  )
}

# Patch is represented as vector of character.
# In environment variable different crates are separated using ';'
# E.g., "extendr-api = { path = "/local/path" };extendr-macros =
# { git = \"https://github.com/extendr/extendr\" }"
patch <- Sys.getenv("REXTENDR_PATCH_CRATES_IO")
if (!is.null(patch) && nzchar(patch)) {
  patch_val <- gsub(
    "([a-zA-Z0-9_\\-\\.]+)(?=\\s*=)", "`\\1`",
    patch,
    perl = TRUE
  )
  patch_val <- gsub("\\{", "list(", patch_val)
  patch_val <- gsub("\\}", ")", patch_val)
  patch_val <- gsub(";", ", ", patch_val)
  patch_expr <- parse(text = paste0("list(", patch_val, ")"))

  options(rextendr.patch.crates_io = eval(patch_expr))
  message(
    paste0(
      ">> {rextendr}: Using cargo patch from 'REXTENDR_PATCH_CRATES_IO': ",
      patch
    )
  )
}

Try the rextendr package in your browser

Any scripts or data that you put into this service are public.

rextendr documentation built on July 9, 2023, 5:54 p.m.