diff --git a/frappyman.py b/frappyman.py index d87f5f7..5a65fc6 100644 --- a/frappyman.py +++ b/frappyman.py @@ -83,21 +83,22 @@ class FrappyManager(ServiceManager): def prepare_start(self, ins, service, cfg=''): start_dir, env = super().prepare_start(ins, service) + env_update = {} for key, value in env.items(): if '' in value: - env[key] = value.replace('', service) + env_update[key] = value.replace('', service) os.environ[key] = env[key] cfgpaths = self.config_dirs(ins, service) if cfgpaths: - env['FRAPPY_CONFDIR'] = os.pathsep.join(cfgpaths) + env_update['FRAPPY_CONFDIR'] = os.pathsep.join(cfgpaths) # merge PYTHONPATH from servicemanager.cfg with the one from environment pypathlist = [] for pypath in env.get('PYTHONPATH'), os.environ.get('PYTHONPATH'): if pypath is not None: pypathlist.extend(p for p in pypath.split(':') if p not in pypathlist) if pypathlist: - env['PYTHONPATH'] = os.environ['PYTHONPATH'] = ':'.join(pypathlist) - return start_dir, env + env_update['PYTHONPATH'] = os.environ['PYTHONPATH'] = ':'.join(pypathlist) + return start_dir, dict(env, **env_update) def do_start(self, ins, service=None, cfg='', restart=False, wait=False, logger=None): if self.wildcard(ins) is not None: