shithub: mc

ref: 0dd5d1f71505ce3d8a51e8244cf3128c54eb8293
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
	;;
}