В python вам нужно import os
, после чего os.environ
- это словарь с входящей средой в нем.Изменения os.environ
экспортируются автоматически.Настоящая проблема здесь заключается в том, что фильтры git --filter- * запускаются, как говорится:
всегда оценивается в контексте оболочки с помощью команды eval (с заметным исключением из фильтра коммитов, длятехнические причины).
Таким образом, он фактически использует оболочку, и если у вас есть оболочка, вызывающая Python, вы попадаете в подпроцесс оболочки, и любые изменения, сделанные в процессе Python, не влияют на это.ракушка.Вам потребуется eval
вывод скрипта Python:
eval `python foo.py`
, где foo.py выводит соответствующие команды export
:
import os
def example():
cn = os.environ['GIT_COMMITTER_NAME']
cm = os.environ['GIT_COMMITTER_EMAIL']
if cn == 'ew':
cn = 'Eric'
cm = 'my.email@provider.com'
print ('export GIT_COMMITTER_NAME="%s"' % cn)
print ('export GIT_COMMITTER_EMAIL="%s"' % cm)
example() # or if __name__ == '__main__', etc.
(все вышеперечисленное не проверено).