treat as_root properly in check_service
This commit is contained in:
20
install.py
20
install.py
@ -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:
|
||||
|
2
utils.py
2
utils.py
@ -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'):
|
||||
|
Reference in New Issue
Block a user