Verb,
__version__,
format_bytes,
- format_tree,
parse_config,
summary,
systemd_tool_version,
*(["--mirror", context.config.mirror] if context.config.mirror else []),
"--repository-key-check", str(context.config.repository_key_check),
"--repositories", ",".join(context.config.repositories),
- "--package-manager-tree", ",".join(format_tree(t) for t in context.config.package_manager_trees),
+ "--package-manager-tree", ",".join(str(t) for t in context.config.package_manager_trees),
# Note that when compress_output == Compression.none == 0 we don't pass --compress-output which means the
# default compression will get picked. This is exactly what we want so that initrds are always compressed.
*(["--compress-output", str(context.config.compress_output)] if context.config.compress_output else []),
def with_prefix(self, prefix: Path = Path("/")) -> tuple[Path, Path]:
return (self.source, prefix / os.fspath(self.target).lstrip("/") if self.target else prefix)
+ def __str__(self) -> str:
+ return f"{self.source}:{self.target}" if self.target else f"{self.source}"
+
@dataclasses.dataclass(frozen=True)
class QemuDrive:
return "default" if s is None else str(s)
-def line_join_list(array: Iterable[PathString]) -> str:
- if not array:
- return "none"
-
- items = (str(none_to_none(cast(Path, item))) for item in array)
- return "\n ".join(items)
-
-
-def format_tree(tree: ConfigTree) -> str:
- return f"{tree.source}:{tree.target}" if tree.target else f"{tree.source}"
-
-
-def line_join_tree_list(array: Sequence[ConfigTree]) -> str:
- if not array:
- return "none"
-
- items = [format_tree(tree) for tree in array]
- return "\n ".join(items)
+def line_join_list(array: Iterable[object]) -> str:
+ return "\n ".join(str(item) for item in array) if array else "none"
def format_bytes(num_bytes: int) -> str:
Repo Signature/Key check: {yes_no(config.repository_key_check)}
Repositories: {line_join_list(config.repositories)}
Use Only Package Cache: {config.cacheonly}
- Package Manager Trees: {line_join_tree_list(config.package_manager_trees)}
+ Package Manager Trees: {line_join_list(config.package_manager_trees)}
{bold("OUTPUT")}:
Output Format: {config.output_format}
With Documentation: {yes_no(config.with_docs)}
Base Trees: {line_join_list(config.base_trees)}
- Skeleton Trees: {line_join_tree_list(config.skeleton_trees)}
- Extra Trees: {line_join_tree_list(config.extra_trees)}
+ Skeleton Trees: {line_join_list(config.skeleton_trees)}
+ Extra Trees: {line_join_list(config.extra_trees)}
Remove Packages: {line_join_list(config.remove_packages)}
Remove Files: {line_join_list(config.remove_files)}
Build Scripts: {line_join_list(config.build_scripts)}
Postinstall Scripts: {line_join_list(config.postinst_scripts)}
Finalize Scripts: {line_join_list(config.finalize_scripts)}
- Build Sources: {line_join_tree_list(config.build_sources)}
+ Build Sources: {line_join_list(config.build_sources)}
Build Sources Ephemeral: {yes_no(config.build_sources_ephemeral)}
Script Environment: {line_join_list(env)}
Environment Files: {line_join_list(config.environment_files)}
Tools Tree Release: {none_to_none(config.tools_tree_release)}
Tools Tree Mirror: {none_to_default(config.tools_tree_mirror)}
Tools Tree Packages: {line_join_list(config.tools_tree_packages)}
- Runtime Trees: {line_join_tree_list(config.runtime_trees)}
+ Runtime Trees: {line_join_list(config.runtime_trees)}
Runtime Size: {format_bytes_or_none(config.runtime_size)}
Runtime Scratch: {config.runtime_scratch}
SSH Signing Key: {none_to_none(config.ssh_key)}