diff --git a/install.py b/install.py index 2c3d7d2..4fecd04 100755 --- a/install.py +++ b/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: diff --git a/utils.py b/utils.py index 47f7b21..dd08002 100644 --- a/utils.py +++ b/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'):