rs-web 0.4.2

A fast, Lua-driven static site generator with encryption support
Documentation
//! Environment module (rs.env)

use mlua::{Lua, Result, Table, Value};

pub fn create_module(lua: &Lua) -> Result<Table> {
    let env = lua.create_table()?;

    // get(name, default?) - Get environment variable with optional default
    let get_fn =
        lua.create_function(
            |lua, (name, default): (String, Option<String>)| match std::env::var(&name) {
                Ok(val) => Ok(Value::String(lua.create_string(&val)?)),
                Err(_) => match default {
                    Some(d) => Ok(Value::String(lua.create_string(&d)?)),
                    None => Ok(Value::Nil),
                },
            },
        )?;
    env.set("get", get_fn)?;

    Ok(env)
}