Processes and Environment
Use explicit imports for environment and process APIs.
Env Vars
system.getenv returns Option[String].
mode: String = getenv("APP_MODE").get_or("dev")
Process Helpers
process.run(program, args) passes arguments without a shell.
match P.run("printf", ["ok"]):
Ok(out): print(out[0])
Err(msg): print_error(msg)
Shell Safety
process.shell(command) goes through /bin/sh -c; reserve it for fixed scripts.
P.run("printf", [value])
-- Prefer this over building a shell string.
Example
env-process.brp
import:
process as P
system: getenv
func main(args: List[String]) -> Int:
config: String = getenv("APP_MODE").get_or("dev")
match P.run("printf", [config]):
Ok(out):
print(out[0]) -- with APP_MODE=docs, prints: docs
out[2]
Err(msg):
print_error(msg)
1
Try it
terminal
blorp run env-process.brp