From bb9eac432eb81c150fe2517ce73217c0572d29bc Mon Sep 17 00:00:00 2001 From: Markus Zolliker Date: Mon, 13 May 2024 14:55:27 +0200 Subject: [PATCH] fix handling of addons, 2nd attempt --- frappyman.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/frappyman.py b/frappyman.py index 4287ed7..18f7558 100644 --- a/frappyman.py +++ b/frappyman.py @@ -378,15 +378,15 @@ class FrappyManager(ServiceManager): self.state[f'sea {service}'] = seacfg running_addons = self.frappy_cfgs.get('addons') - running_addons = set(','.split(running_addons)) if running_addons else () - proposed_addons = set() + running_addons = [v.strip() for v in running_addons.split(',') if v.strip()] + proposed_addons = [] # use list instead of set for keeping order running_sea_addons = set() for cfg in running_addons: seacfg = self.frappy2sea.get(cfg.strip()) if seacfg is None: - proposed_addons.add(cfg) # addons with no sea cfg should be kept + proposed_addons.append(cfg) # addons with no sea cfg should be kept elif seacfg.endswith('.addon') and seacfg[:-6] in sealist[2:]: - proposed_addons.add(cfg) + proposed_addons.append(cfg) running_sea_addons.add(seacfg) for scfg in sealist[2:]: @@ -397,9 +397,12 @@ class FrappyManager(ServiceManager): if len(proposed) > 1: self.error = f'ambiguous frappy cfg for {seacfg}.addon: {proposed}' else: - proposed_addons |= proposed - if proposed_addons and set(proposed_addons) != set(running_addons): - proposed_cfg['addons'] = {','.join(sorted(proposed_addons))} + proposed = list(proposed)[0] + if proposed not in proposed_addons: + proposed_addons.append(proposed) + self.sea_cfgs['addons'] = ','.join(sealist[2:]) + if proposed_addons: # and set(proposed_addons) != set(running_addons): + proposed_cfg['addons'] = {','.join(proposed_addons)} for service in FrappyManager.services: given = givencfgs.get(service)