Leer, cargar y editar

renviron 0.6.0 administra archivos .Renviron y nombres personalizados. La lectura devuelve una lista sin modificar la sesión; la carga aplica solo las claves elegidas. Los ejemplos usan datos inventados y archivos temporales.

Función Lee el archivo Cambia la sesión Guarda el archivo
renviron_read() Sí No No
renviron_get(), renviron_exists(), renviron_list() Si no se pasa una lista No No
renviron_load() Sí Claves seleccionadas No
renviron_add(), renviron_delete() Si no se pasa una lista Solo la clave indicada Con in_place=TRUE
renviron_save() No interpreta el contenido previo No Reemplazo completo
renviron_unset_all() Sí Retira las claves seleccionadas No

renviron_list() devuelve una máscara constante por variable. renviron_read() y renviron_get() devuelven valores reales: evite imprimir sus resultados cuando contengan información privada. El enmascaramiento es una ayuda de presentación; no cifra archivos.

Recorrido completo

El guardado de una clave conserva comentarios y expresiones de las otras claves. El valor dependiente se recalcula al leer de nuevo; su versión en la sesión solo cambia al cargarlo explícitamente.

local({
  withr::local_envvar(c(RNV_DEMO = "parent", RNV_COPY = "parent-copy"))
  path <- tempfile()
  on.exit(unlink(path))
  writeLines(c("# invented configuration", "RNV_DEMO='one=two'",
               "RNV_COPY='${RNV_DEMO}'"), path)
  values <- renviron::renviron_read(.file = path)
  stopifnot(values$RNV_COPY == "one=two", Sys.getenv("RNV_DEMO") == "parent")
  renviron::renviron_add("RNV_DEMO", "updated", .file = path,
                        in_place = TRUE, confirm = FALSE)
  stopifnot(Sys.getenv("RNV_COPY") == "parent-copy")
  renviron::renviron_load(.file = path, .vars = "RNV_COPY")
  stopifnot(Sys.getenv("RNV_COPY") == "updated")
  print(renviron::renviron_list(.file = path))
  renviron::renviron_delete("RNV_DEMO", .file = path,
                           in_place = TRUE, confirm = FALSE)
  stopifnot(!renviron::renviron_exists("RNV_DEMO", .file = path))
})
## RNV_DEMO RNV_COPY 
##  "*****"  "*****"