comparison python/readenv.py @ 634:4ae9b16a1483

read env variables
author Jeff Hammel <k0scist@gmail.com>
date Wed, 26 Feb 2014 13:44:02 -0800
parents
children
comparison
equal deleted inserted replaced
633:d37391e845f5 634:4ae9b16a1483
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 """
5 parse environment variables
6 """
7
8 import argparse
9 import os
10 import subprocess
11 import sys
12
13 def parse_env(output):
14 return dict([line.split('=',1) for line in output.splitlines()])
15
16 def read_env(script):
17 """read environment following source script"""
18 command = 'bash -c "(. {} &> /dev/null) && /usr/bin/env"'.format(script)
19 command = "(. {} &> /dev/null) && /usr/bin/env".format(script)
20 output = subprocess.check_output(command, shell=True, env={})
21 return parse_env(output)
22
23 def diff_env(script):
24 before = parse_env(subprocess.check_output('/usr/bin/env', shell=True))
25 after = read_env(script)
26
27
28 if __name__ == '__main__':
29 """test"""
30
31 import tempfile
32 from pprint import pprint
33
34 example = """export FOO=bar
35 export FLEEM=foobar"""
36
37
38 fd, name = tempfile.mkstemp()
39 os.write(fd, example)
40 os.close(fd)
41 print (open(name).read())
42
43 pprint(name)
44 pprint(read_env(name))