def start(self): """Start method""" if self._config.find("policy").text == 'allow': policy = True elif self._config.find("policy").text == 'deny': policy = False apps = [e.text for e in self._config.findall("entry[@type='app']")] for D, d, F in os.walk(app_dir): for f in F: if f.endswith(".desktop"): Exec = '' try: Exec = DesktopParser(os.path.join(D, f)).get('Exec') if Exec: Exec = Exec.split()[0] except Exception as e: print("__ app_permissions error:", e) for p in os.environ["PATH"].split(':'): b = os.path.join(p, Exec) if os.path.isfile(b): Exec = b break if f in apps: os.chmod(os.path.join(D, f), modes['app'][not policy]) if os.path.isfile(Exec): os.chmod(Exec, modes['bin'][not policy]) else: os.chmod(os.path.join(D, f), modes['app'][policy]) if os.path.isfile(Exec): os.chmod(Exec, modes['bin'][policy])
def stop(self): """Stop method""" for D, d, F in os.walk(app_dir): for f in F: f = os.path.join(D, f) if f.endswith(".desktop"): Exec = '' try: Exec = DesktopParser(f).get('Exec') if Exec: Exec = Exec.split()[0] except: pass for p in os.environ["PATH"].split(':'): b = os.path.join(p, Exec) if os.path.isfile(b): Exec = b break os.chmod(f, modes['app'][1]) if os.path.isfile(Exec): os.chmod(Exec, modes['bin'][1])