KIWI_CONFIG handling

This commit is contained in:
Jörn-Michael Miehe 2022-02-23 00:21:29 +01:00
parent 23ef20bd74
commit 5c300b9119
3 changed files with 7 additions and 25 deletions

View file

@ -32,8 +32,8 @@ class Instance:
return self.directory.joinpath(CONFIG_DIRECTORY_NAME) return self.directory.joinpath(CONFIG_DIRECTORY_NAME)
@property @property
def storage_config_directory(self): def storage_directory(self):
return self.config.storage.directory.joinpath(CONFIG_DIRECTORY_NAME) return self.config.storage.directory
@staticmethod @staticmethod
def __find_net(net_name): def __find_net(net_name):

View file

@ -64,9 +64,7 @@ class Rootkit:
return argument return argument
elif isinstance(argument, Path): elif isinstance(argument, Path):
if argument.is_absolute(): argument = argument.absolute().relative_to("/")
argument = argument.relative_to("/")
return str(ROOTKIT_PREFIX.joinpath(argument)) return str(ROOTKIT_PREFIX.joinpath(argument))
elif not isinstance(argument, Sequence): elif not isinstance(argument, Sequence):

View file

@ -44,36 +44,20 @@ class Services:
yield from service.configs yield from service.configs
def copy_configs(self) -> None: 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 project = self.parent_project
configs = list(self.configs)
if project is None: if project is None or not configs:
return return
instance = project.parent_instance 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([ Rootkit("rsync").run([
"mkdir", "-p", storage_dirs "mkdir", "-p", instance.storage_directory
], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
Rootkit("rsync").run([ 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) ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
@property @property