| Title: | Environment File Management for R Projects |
|---|---|
| Description: | Read environment files without modifying the current session, load selected variables, and edit individual assignments while preserving unrelated lines. Uses the native R environment reader in an isolated process and writes literal values with validation and file replacement. |
| Authors: | Daniel E. de la Rosa [aut, cre] (ORCID: <https://orcid.org/0000-0002-5965-5277>), Adatar [cph] |
| Maintainer: | Daniel E. de la Rosa <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.6.0 |
| Built: | 2026-10-14 11:31:24 UTC |
| Source: | https://github.com/adatar-do/renviron |
Actualiza la clave seleccionada en la sesión. Si se guarda, primero escribe el archivo; una cancelación o fallo de escritura deja la sesión intacta.
renviron_add( key, value, .renviron = NULL, in_place = FALSE, ..., confirm = TRUE )renviron_add( key, value, .renviron = NULL, in_place = FALSE, ..., confirm = TRUE )
key |
Nombre de una variable. |
value |
Un valor de caracteres, sin NA ni saltos de línea. |
.renviron |
Lista o vector nombrado; |
in_place |
Guardar también el archivo; el valor predeterminado es |
... |
Argumentos de |
confirm |
Confirmación interactiva del guardado; para scripts use |
Sin .renviron, el guardado modifica solo las líneas de la clave;
conserva comentarios, líneas vacías y expresiones de las demás variables.
Elimina duplicados de la clave editada. Los finales de línea se normalizan
a LF y se escribe UTF-8. Si proporciona .renviron, el guardado reemplaza
todo el archivo con esa lista modificada. No recalcula otras variables
de la sesión que dependan de la clave; use renviron_load() para ello.
Lista modificada, invisiblemente; la lista original si se cancela.
previous <- Sys.getenv("RNV_ADD_DEMO", unset = NA_character_) values <- renviron_add("RNV_ADD_DEMO", "sample", .renviron = list()) if (is.na(previous)) Sys.unsetenv("RNV_ADD_DEMO") else Sys.setenv(RNV_ADD_DEMO = previous)previous <- Sys.getenv("RNV_ADD_DEMO", unset = NA_character_) values <- renviron_add("RNV_ADD_DEMO", "sample", .renviron = list()) if (is.na(previous)) Sys.unsetenv("RNV_ADD_DEMO") else Sys.setenv(RNV_ADD_DEMO = previous)
Elimina únicamente la clave indicada. El comportamiento de edición,
conservación de líneas y cancelación es el de renviron_add().
renviron_delete(key, .renviron = NULL, in_place = FALSE, ..., confirm = TRUE)renviron_delete(key, .renviron = NULL, in_place = FALSE, ..., confirm = TRUE)
key |
Nombre de una variable. |
.renviron |
Lista o vector nombrado; |
in_place |
Guardar también el archivo; el valor predeterminado es |
... |
Argumentos de |
confirm |
Confirmación interactiva del guardado; para scripts use |
Lista restante, invisiblemente; la original si se cancela.
previous <- Sys.getenv("RNV_DELETE_DEMO", unset = NA_character_) values <- renviron_delete("RNV_DELETE_DEMO", .renviron = list()) if (!is.na(previous)) Sys.setenv(RNV_DELETE_DEMO = previous)previous <- Sys.getenv("RNV_DELETE_DEMO", unset = NA_character_) values <- renviron_delete("RNV_DELETE_DEMO", .renviron = list()) if (!is.na(previous)) Sys.setenv(RNV_DELETE_DEMO = previous)
Comprueba la presencia de la clave, incluso cuando su valor es vacío. No modifica la sesión.
renviron_exists(key, .renviron = NULL, ...)renviron_exists(key, .renviron = NULL, ...)
key |
Nombre de una variable. |
.renviron |
Lista o vector nombrado; |
... |
Argumentos de |
TRUE o FALSE.
renviron_exists("RNV_EXAMPLE", .renviron = list(RNV_EXAMPLE = ""))renviron_exists("RNV_EXAMPLE", .renviron = list(RNV_EXAMPLE = ""))
Consulta exclusivamente el archivo o la lista indicada, sin cargar variables ni recuperar valores ajenos del entorno de la sesión.
renviron_get(key, .renviron = NULL, ...)renviron_get(key, .renviron = NULL, ...)
key |
Nombre de una variable. |
.renviron |
Lista o vector nombrado; |
... |
Argumentos de |
Valor de caracteres, incluyendo ""; NULL si la clave no existe.
renviron_get("RNV_EXAMPLE", .renviron = list(RNV_EXAMPLE = ""))renviron_get("RNV_EXAMPLE", .renviron = list(RNV_EXAMPLE = ""))
Devuelve únicamente los nombres y una máscara constante. No carga variables en la sesión. La máscara no informa la longitud ni el contenido del valor.
renviron_list(.renviron = NULL, ...)renviron_list(.renviron = NULL, ...)
.renviron |
Lista o vector nombrado; |
... |
Argumentos de |
Vector de caracteres nombrado con "*****" por variable;
character() si no hay variables.
renviron_list(list(RNV_EXAMPLE = "demo", RNV_EMPTY = ""))renviron_list(list(RNV_EXAMPLE = "demo", RNV_EMPTY = ""))
Lee y valida el archivo completo antes de modificar la sesión. Solo establece las variables seleccionadas; las demás conservan su valor actual.
renviron_load( scope = c("user", "project"), .file = ".Renviron", .vars = NULL, verbosity = 1, ... )renviron_load( scope = c("user", "project"), .file = ".Renviron", .vars = NULL, verbosity = 1, ... )
scope |
Ámbitos que se consultan en orden: |
.file |
Nombre relativo al ámbito o ruta absoluta explícita. |
.vars |
Nombres que se devuelven; |
verbosity |
|
... |
Argumentos de |
Lista de variables cargadas, devuelta invisiblemente.
path <- tempfile() writeLines("RNV_LOAD_DEMO='sample'", path) previous <- Sys.getenv("RNV_LOAD_DEMO", unset = NA_character_) values <- renviron_load(.file = path, .vars = "RNV_LOAD_DEMO") if (is.na(previous)) Sys.unsetenv("RNV_LOAD_DEMO") else Sys.setenv(RNV_LOAD_DEMO = previous) unlink(path)path <- tempfile() writeLines("RNV_LOAD_DEMO='sample'", path) previous <- Sys.getenv("RNV_LOAD_DEMO", unset = NA_character_) values <- renviron_load(.file = path, .vars = "RNV_LOAD_DEMO") if (is.na(previous)) Sys.unsetenv("RNV_LOAD_DEMO") else Sys.setenv(RNV_LOAD_DEMO = previous) unlink(path)
Consulta los ámbitos en el orden indicado, sin fusionar archivos ni cambiar
el proyecto activo. project es el directorio de trabajo por defecto.
renviron_path( scope = c("user", "project"), .file = ".Renviron", verbosity = 1, ..., project = getwd(), user = path.expand("~") )renviron_path( scope = c("user", "project"), .file = ".Renviron", verbosity = 1, ..., project = getwd(), user = path.expand("~") )
scope |
Ámbitos que se consultan en orden: |
.file |
Nombre relativo al ámbito o ruta absoluta explícita. |
verbosity |
|
... |
Argumentos de |
project |
Directorio para el ámbito de proyecto; por defecto |
user |
Directorio para el ámbito de usuario; por defecto el hogar de R. |
Una ruta absoluta en .file tiene prioridad sobre los ámbitos.
R_ENVIRON_USER se respeta solo para el archivo predeterminado del ámbito
user cuando no se especifica user. Un nombre personalizado no se redirige.
El orden predeterminado sigue siendo usuario, proyecto; use
scope = c("project", "user") para dar prioridad al proyecto.
Ruta absoluta. Si no existe un archivo, devuelve la primera ruta
candidata, utilizable para crear un archivo con renviron_save().
renviron_path("project", project = tempdir())renviron_path("project", project = tempdir())
Interpreta un archivo con el lector nativo de R en un proceso aislado. Las referencias a variables se resuelven en orden, con el entorno heredado de la sesión. No modifica variables ni ejecuta perfiles de inicio.
renviron_read( scope = c("user", "project"), .file = ".Renviron", .vars = NULL, verbosity = 1, ... )renviron_read( scope = c("user", "project"), .file = ".Renviron", .vars = NULL, verbosity = 1, ... )
scope |
Ámbitos que se consultan en orden: |
.file |
Nombre relativo al ámbito o ruta absoluta explícita. |
.vars |
Nombres que se devuelven; |
verbosity |
|
... |
Argumentos de |
Admite comillas, =, comentarios de línea, referencias ${VAR},
valores predeterminados de R y el prefijo opcional export. Un KEY= sin
comillas se ignora, como en R; KEY='' expresa un valor vacío. Un # al
final de una asignación forma parte del valor. No ejecuta sintaxis de shell.
Cada lectura inicia un proceso de R y requiere que Rscript esté disponible.
La lista conserva las claves declaradas aunque su valor resulte vacío.
Windows representa algunas variables vacías como ausentes en el entorno
del proceso; la lista mantiene "". Una expansión vacía sin comillas puede
ser ignorada por R y conservar un valor previamente heredado.
Lista nombrada, devuelta invisiblemente. Un archivo vacío o ausente
produce list(). Las asignaciones inválidas producen un error sin valores.
path <- tempfile() writeLines(c("RNV_DEMO='one=two'", "RNV_COPY='${RNV_DEMO}'"), path) values <- renviron_read(.file = path) stopifnot(identical(values$RNV_COPY, "one=two")) unlink(path)path <- tempfile() writeLines(c("RNV_DEMO='one=two'", "RNV_COPY='${RNV_DEMO}'"), path) values <- renviron_read(.file = path) stopifnot(identical(values$RNV_COPY, "one=two")) unlink(path)
Reemplaza el contenido del archivo con valores literales compatibles con R. Valida todos los datos antes de escribir. La sustitución usa un archivo temporal en el mismo directorio y conserva los permisos de un archivo existente.
renviron_save(.Renviron, confirm = TRUE, ...)renviron_save(.Renviron, confirm = TRUE, ...)
.Renviron |
Lista nombrada o vector de caracteres nombrado, con valores
escalares sin NA ni saltos de línea. |
confirm |
Solicitar confirmación interactiva. Para scripts use |
... |
Argumentos de |
Esta función reemplaza todo el documento, incluidos comentarios.
Para editar una sola clave conservando otras líneas use renviron_add() o
renviron_delete() con in_place = TRUE y sin proporcionar .renviron.
Los valores ${...} se guardan como texto literal. No se admiten enlaces
simbólicos como destino, valores multilínea ni líneas codificadas de más
de 99900 bytes. El directorio debe existir. Los nuevos archivos usan modo
0600 donde el sistema lo soporta; en Windows rigen también las ACL del directorio.
Ruta guardada, invisiblemente; NULL si se cancela. No cambia la sesión.
path <- tempfile() renviron_save(list(RNV_SAVE_DEMO = "one=two", RNV_EMPTY = ""), .file = path, confirm = FALSE) renviron_list(.file = path) unlink(path)path <- tempfile() renviron_save(list(RNV_SAVE_DEMO = "one=two", RNV_EMPTY = ""), .file = path, confirm = FALSE) renviron_list(.file = path) unlink(path)
Lee sin cargar variables y elimina de la sesión solo las claves resultantes. No modifica el archivo ni otras variables del sistema.
renviron_unset_all(...)renviron_unset_all(...)
... |
Argumentos de |
NULL, invisiblemente.
path <- tempfile() writeLines(character(), path) renviron_unset_all(.file = path) unlink(path)path <- tempfile() writeLines(character(), path) renviron_unset_all(.file = path) unlink(path)
Función de compatibilidad para resolver un único ámbito. Para buscar archivos
en varios ámbitos use renviron_path(). No cambia el proyecto activo.
scoped_path_r( scope = c("user", "project"), ..., envvar = NULL, project = getwd(), user = path.expand("~") )scoped_path_r( scope = c("user", "project"), ..., envvar = NULL, project = getwd(), user = path.expand("~") )
scope |
Un ámbito: |
... |
Componentes de la ruta. |
envvar |
Nombre de una variable que puede reemplazar la ruta de usuario. |
project |
Directorio de proyecto; por defecto |
user |
Directorio de usuario; por defecto el hogar de R. |
Ruta absoluta.
scoped_path_r("project", "example.env", project = tempdir())scoped_path_r("project", "example.env", project = tempdir())