fix handling of addons, 2nd attempt
This commit is contained in:
parent
02b24ed202
commit
bb9eac432e
17
frappyman.py
17
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user