shithub: mc

ref: e1bd55e7d0fd87b66041c1f90cc4cba370cb25ed
dir: /lib/std/env+posixy.myr/

View raw version
use sys

use "extremum.use"
use "option.use"
use "sleq.use"

pkg std =
	const getenv :	(name : byte[:] -> option(byte[:]))
	const getenvv :	(name : byte[:], default : byte[:] -> byte[:])
;;

const getenv = {name
	var n
	for env in sys.__environment
		n = min(name.len, env.len)
		if sleq(name, env[:n]) && sleq(env[n:n+1], "=")
			-> `Some env[n+1:]
		;;
	;;
	-> `None
}

const getenvv = {name, default
	match getenv(name)
	| `Some v:	-> v
	| `None:	-> default
	;;
}