Nyx con Ejemplos

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.

← Anterior Siguiente →

Source: examples/by-example/14-env-vars.nx