Mercurial > hg > config
changeset 634:4ae9b16a1483
read env variables
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Wed, 26 Feb 2014 13:44:02 -0800 |
parents | d37391e845f5 |
children | 2271c276a43c |
files | python/readenv.py |
diffstat | 1 files changed, 44 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/python/readenv.py Wed Feb 26 13:44:02 2014 -0800 @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +parse environment variables +""" + +import argparse +import os +import subprocess +import sys + +def parse_env(output): + return dict([line.split('=',1) for line in output.splitlines()]) + +def read_env(script): + """read environment following source script""" + command = 'bash -c "(. {} &> /dev/null) && /usr/bin/env"'.format(script) + command = "(. {} &> /dev/null) && /usr/bin/env".format(script) + output = subprocess.check_output(command, shell=True, env={}) + return parse_env(output) + +def diff_env(script): + before = parse_env(subprocess.check_output('/usr/bin/env', shell=True)) + after = read_env(script) + + +if __name__ == '__main__': + """test""" + + import tempfile + from pprint import pprint + + example = """export FOO=bar +export FLEEM=foobar""" + + + fd, name = tempfile.mkstemp() + os.write(fd, example) + os.close(fd) + print (open(name).read()) + + pprint(name) + pprint(read_env(name))