Variables de Entorno
Nyx expone el entorno del proceso mediante dos funciones integradas: getenv devuelve el valor de una variable o un string vacío si no está definida, mientras que getenv_default te permite proveer un valor por defecto, haciendo que el código de configuración sea más seguro y legible.
Código
// Variables de entorno: getenv(), getenv_default()
fn main() -> int {
// getenv retorna el valor o "" si no existe
let home: String = getenv("HOME")
print("HOME=" + home)
let path: String = getenv("PATH")
// Mostrar solo los primeros 40 chars para no saturar la salida
if path.length() > 40 {
print("PATH=" + path.substring(0, 40) + "...")
} else {
print("PATH=" + path)
}
// getenv_default: retorna el segundo argumento si la variable no existe
let mi_var: String = getenv_default("MI_VAR_NX", "valor_por_defecto")
print("MI_VAR_NX=" + mi_var)
let usuario: String = getenv_default("USER", "desconocido")
print("USER=" + usuario)
return 0
}
Salida
HOME=/home/alice PATH=/usr/local/bin:/usr/bin:/bin... MI_VAR_NX=valor_por_defecto USER=alice
Explicación
getenv(name) envuelve la llamada POSIX getenv(3) y convierte el resultado a un String de Nyx. Si la variable no está definida en el entorno del proceso, devuelve un string vacío "" en lugar de fallar — esto hace que sea seguro llamarla incondicionalmente.
getenv_default(name, fallback) es un envoltorio de conveniencia que devuelve el valor de la variable cuando existe, o fallback en caso contrario. Este patrón es común en aplicaciones "twelve-factor" donde cada valor de configuración debería tener un valor por defecto documentado.
La variable PATH suele ser muy larga, así que el ejemplo la recorta a 40 caracteres usando .substring(0, 40) para mantener la salida legible. La verificación de .length() antes de recortar evita un error de fuera de rango cuando PATH resulta ser más corta de lo esperado.