diff --git a/kiwi_scp/instance.py b/kiwi_scp/instance.py index c40e1f7..13f6047 100644 --- a/kiwi_scp/instance.py +++ b/kiwi_scp/instance.py @@ -32,8 +32,8 @@ class Instance: return self.directory.joinpath(CONFIG_DIRECTORY_NAME) @property - def storage_config_directory(self): - return self.config.storage.directory.joinpath(CONFIG_DIRECTORY_NAME) + def storage_directory(self): + return self.config.storage.directory @staticmethod def __find_net(net_name): diff --git a/kiwi_scp/rootkit.py b/kiwi_scp/rootkit.py index 1be6ab6..22cade4 100644 --- a/kiwi_scp/rootkit.py +++ b/kiwi_scp/rootkit.py @@ -64,9 +64,7 @@ class Rootkit: return argument elif isinstance(argument, Path): - if argument.is_absolute(): - argument = argument.relative_to("/") - + argument = argument.absolute().relative_to("/") return str(ROOTKIT_PREFIX.joinpath(argument)) elif not isinstance(argument, Sequence): diff --git a/kiwi_scp/services.py b/kiwi_scp/services.py index f1b3455..fc4d20d 100644 --- a/kiwi_scp/services.py +++ b/kiwi_scp/services.py @@ -44,36 +44,20 @@ class Services: yield from service.configs def copy_configs(self) -> None: - path_str_list = TypeVar("path_str_list", Union[Path, str], List[Union[Path, str]]) - - def prefix_path(path: path_str_list, prefix: Path) -> path_str_list: - if isinstance(path, Path): - return prefix.absolute().joinpath(path) - - elif isinstance(path, str): - return prefix_path(Path(path), prefix) - - elif isinstance(path, list): - return [prefix_path(p, prefix) for p in path] - project = self.parent_project + configs = list(self.configs) - if project is None: + if project is None or not configs: return instance = project.parent_instance - cfgs = list(self.configs) - - local_cfgs = prefix_path(cfgs, instance.config_directory) - storage_cfgs = prefix_path(cfgs, instance.storage_config_directory) - storage_dirs = [path.parent for path in storage_cfgs] Rootkit("rsync").run([ - "mkdir", "-p", storage_dirs + "mkdir", "-p", instance.storage_directory ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) Rootkit("rsync").run([ - "rsync", "-rpt", list(zip(local_cfgs, storage_cfgs)) + "rsync", "-rpt", instance.config_directory, instance.storage_directory ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) @property