Tengo un script que se parece a esto:
export foo=/tmp/foo
export bar=/tmp/bar
Cada vez que construyo, ejecuto 'source init_env' (donde init_env es el script anterior) para configurar algunas variables.
Para lograr lo mismo en Python, tenía este código ejecutándose,
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)
Pero luego alguien decidió que sería bueno agregar una línea como la siguiente al init_env
archivo:
export PATH="/foo/bar:/bar/foo:$PATH"
Obviamente, mi script de Python se vino abajo. Podría modificar el script de Python para manejar esta línea, pero luego se romperá más adelante cuando alguien presente una nueva función para usar en el init_env
archivo.
La pregunta es si hay una manera fácil de ejecutar un comando Bash y dejar que modifique mi os.environ
.