Yet another dotenv utility for MoonBit.
Dependencies
moon add ShellWen/dotenvHOST=localhost
PORT=3000
DATABASE_URL=mysql://user:pass@localhost/dbnamefn main {
let env_map = @dotenv.EnvLoader::new?().unwrap().load?().unwrap()
let host = env_map.get("HOST").unwrap()
println("HOST=\{host}")
}// Load from a specific file path
let loader1 = @dotenv.EnvLoader::from_path?("./.env.dev").unwrap()
// Default loader (equivalent to with_path("./.env"))
let loader2 = @dotenv.EnvLoader::new?().unwrap()let env_map = @dotenv.EnvLoader::new?().unwrap().load?().unwrap()
// Get a variable (returns Option)
let host = env_map.get("HOST").unwrap()
// Get with default value if not found
let port = match env_map.get("PORT") {
Some(p) => p
None => "8080"
}
// Check if a variable exists
if env_map.get("DATABASE_URL").is_some() {
// Do something with database URL
}HOST=localhost
URL=http://${HOST}:3000match @dotenv.EnvLoader::new?().unwrap().load?() {
Ok(env) =>
// Use environment variables
println("Loaded successfully")
Err(e) =>
// Handle error
println("Error loading .env file")
}fn main {
// Load environment from .env file
let env = @dotenv.EnvLoader::new?().unwrap().load?().unwrap()
// Access variables
let host = env.get("HOST").unwrap()
let port = match env.get("PORT") {
Some(p) => p
None => "8080" // Default to 8080 if not set
}
// Use variables in your application
println("Server running at \{host}:\{port}")
// Check if a variable exists
if env.get("DEBUG").is_some() {
println("Debug mode enabled")
}
}pub suberror DotenvError {
FileNotFound(String)
LineParseError(String, UInt)
Io(Error, String)
InvalidOp
}pub struct EnvLoader {
path : String?
// private fields
}pub(all) enum EnvSequence {
EnvOnly
EnvThenInput
InputOnly
InputThenEnv
}impl Default for EnvSequenceYet another dotenv utility for MoonBit.
Dependencies