treat as_root properly in check_service

This commit is contained in:
2025-05-28 13:38:55 +02:00
parent f91bb1e725
commit 50a2390c3b
2 changed files with 11 additions and 11 deletions

View File

@ -193,7 +193,7 @@ def do_cmd(*command, sudo=True):
def frappy(cfg=None, port=None, requirements='', **kwds):
if not cfg:
return None
return False, None
req = pip_requirements['l_samenv']
if requirements:
req[cfg] = '\n'.join(requirements.split(','))
@ -222,7 +222,7 @@ def router(firewall=False, **opts):
elif change_firewall(False, set(), doit):
show.dirty = True
if not opts:
return None
return True, None
try:
os.remove(TO_SYSTEM[0] / 'etc/nftables.conf')
with open(TOOLS / 'requirements.txt') as f:
@ -246,7 +246,7 @@ def display_update(cfg):
def display(**opts):
if not opts:
return None
return True, None
return True, DISPLAY_SERVICE
@ -275,9 +275,10 @@ def pip():
show.dirty = True
def boxweb(port=80, page='main'):
def boxweb(port=80, page=None):
port = int(port)
return port <= 1024, BOXWEB_SERVICE.format(port=port, page=page)
servicecfg = None if page is None else BOXWEB_SERVICE.format(port=port, page=page)
return port <= 1024, servicecfg
SERVICES = dict(router=router, display=display, frappy=frappy, boxweb=boxweb)
@ -661,15 +662,14 @@ def handle_config():
for service, service_func in SERVICES.items():
section = service.upper()
section_dict = config.get(section, {})
ret = service_func(**section_dict)
active, enabled = check_service(service)
if ret is None:
as_root, servicecfg = service_func(**section_dict)
active, enabled = check_service(service, as_root=as_root)
if servicecfg is None:
if active or enabled:
check_service(service, False, doit)
check_service(service, False, doit, as_root=as_root)
show.dirty = True
continue
else:
as_root, servicecfg = ret
if not enabled:
to_start[service] = 'enable', as_root
elif not active:

View File

@ -226,7 +226,7 @@ def check_service(service, set_on=None, execute=None, as_root=True):
sim: print out command instead of executing
"""
result = unix_cmd(f'systemctl show -p WantedBy -p ActiveState {service}', sudo=False)
result = unix_cmd('systemctl show -p WantedBy -p ActiveState', service, sudo=as_root)
enabled = False
active = False
for line in result.split('\n'):