diff --git a/scripts/snap_pac.py b/scripts/snap_pac.py index d71b349..ab331a5 100755 --- a/scripts/snap_pac.py +++ b/scripts/snap_pac.py @@ -61,11 +61,19 @@ class SnapperCmd: class ConfigProcessor: - def __init__(self, ini_file, parent_cmd, packages, snapshot_type): + def __init__(self, ini_file, snapshot_type, parent_cmd=None, packages=None): """Set up defaults for snap-pac configuration.""" - self.parent_cmd = parent_cmd - self.packages = packages + if parent_cmd is None: + self.parent_cmd = os.popen(f"ps -p {os.getppid()} -o args=").read().strip() + else: + self.parent_cmd = parent_cmd + + if packages is None: + self.packages = [line.rstrip("\n") for line in sys.stdin] + else: + self.packages = packages + self.snapshot_type = snapshot_type self.config = ConfigParser() @@ -166,9 +174,7 @@ if __name__ == "__main__": snapper_conf_file = args.snapper_conf_file snap_pac_ini = args.snap_pac_ini - parent_cmd = os.popen(f"ps -p {os.getppid()} -o args=").read().strip() - packages = [line.rstrip("\n") for line in sys.stdin] - config_processor = ConfigProcessor(snap_pac_ini, parent_cmd, packages, snapshot_type) + config_processor = ConfigProcessor(snap_pac_ini, snapshot_type) snapper_configs = get_snapper_configs(snapper_conf_file) chroot = os.stat("/") != os.stat("/proc/1/root/.") tmpdir = Path(tempfile.gettempdir()) diff --git a/tests/test_script.py b/tests/test_script.py index c2dccd2..adbe07a 100644 --- a/tests/test_script.py +++ b/tests/test_script.py @@ -104,7 +104,7 @@ def test_config_processor(section, command, packages, snapshot_type, result): f.write("important_packages = [\"linux\", \"linux-lts\"]\n") f.write("userdata = [\"foo=bar\", \"requestid=42\"]\n") name = f.name - config_processor = ConfigProcessor(name, command, packages, snapshot_type) + config_processor = ConfigProcessor(name, snapshot_type, command, packages) assert config_processor(section) == result