Emulando Bash 'source' em Python
Eu tenho um script que se parece com isso:
export foo=/tmp/foo
export bar=/tmp/bar
Toda vez que eu construo, eu executo 'source init_env' (onde init_env é o script acima) para configurar algumas variáveis.
Para realizar o mesmo em Python, eu tive esse código em execução,
reg = re.compile('export (?P<name>\w+)(\=(?P<value>.+))*')
for line in open(file):
m = reg.match(line)
if m:
name = m.group('name')
value = ''
if m.group('value'):
value = m.group('value')
os.putenv(name, value)
Mas entãoalguém decidiu que seria bom adicionar uma linha como a seguinte aoinit_env
Arquivo:
export PATH="/foo/bar:/bar/foo:$PATH"
Obviamente, meu script Python se desfez. Eu poderia modificar o script Python para lidar com essa linha, mas ele será interrompido mais tarde quandoalguém vem com um novo recurso para usar noinit_env
Arquivo.
A questão é se existe uma maneira fácil de executar um comando Bash e deixá-lo modificar meuos.environ
?