import textwrap
from collections.abc import Iterable, Sequence
from pathlib import Path
-from typing import NamedTuple, Optional
+from typing import NamedTuple, Optional, cast
from mkosi.config import Config
from mkosi.context import Context
"apt-mark",
"apt-sortpkgs",
)
- } | {
- "mkosi-install" : apivfs_cmd(context.root) + cls.cmd(context, "apt-get") + ["install"],
- "mkosi-upgrade" : apivfs_cmd(context.root) + cls.cmd(context, "apt-get") + ["upgrade"],
- "mkosi-remove" : apivfs_cmd(context.root) + cls.cmd(context, "apt-get") + ["purge"],
- "mkosi-reinstall": apivfs_cmd(context.root) + cls.cmd(context, "apt-get") + ["install", "--reinstall"],
- }
+ } | cast(dict[str, list[PathString]], {
+ "mkosi-install" : ["apt-get", "install"],
+ "mkosi-upgrade" : ["apt-get", "upgrade"],
+ "mkosi-remove" : ["apt-get", "purge"],
+ "mkosi-reinstall": ["apt-get", "install", "--reinstall"],
+ })
@classmethod
def setup(cls, context: Context, repos: Iterable[Repository]) -> None:
return {
"dnf": apivfs_cmd(context.root) + cls.cmd(context),
"rpm": apivfs_cmd(context.root) + rpm_cmd(context),
- "mkosi-install" : apivfs_cmd(context.root) + cls.cmd(context) + ["install"],
- "mkosi-upgrade" : apivfs_cmd(context.root) + cls.cmd(context) + ["upgrade"],
- "mkosi-remove" : apivfs_cmd(context.root) + cls.cmd(context) + ["remove"],
- "mkosi-reinstall": apivfs_cmd(context.root) + cls.cmd(context) + ["reinstall"],
+ "mkosi-install" : ["dnf", "install"],
+ "mkosi-upgrade" : ["dnf", "upgrade"],
+ "mkosi-remove" : ["dnf", "remove"],
+ "mkosi-reinstall": ["dnf", "reinstall"],
}
@classmethod
def scripts(cls, context: Context) -> dict[str, list[PathString]]:
return {
"pacman": apivfs_cmd(context.root) + cls.cmd(context),
- "mkosi-install" : apivfs_cmd(context.root) + cls.cmd(context) + ["--sync", "--needed"],
- "mkosi-upgrade" : apivfs_cmd(context.root) + cls.cmd(context) + ["--sync", "--sysupgrade", "--needed"],
- "mkosi-remove" : apivfs_cmd(context.root) + cls.cmd(context) + ["--remove", "--recursive", "--nosave"],
- "mkosi-reinstall": apivfs_cmd(context.root) + cls.cmd(context) + ["--sync"],
+ "mkosi-install" : ["pacman", "--sync", "--needed"],
+ "mkosi-upgrade" : ["pacman", "--sync", "--sysupgrade", "--needed"],
+ "mkosi-remove" : ["pacman", "--remove", "--recursive", "--nosave"],
+ "mkosi-reinstall": ["pacman", "--sync"],
}
@classmethod
@classmethod
def scripts(cls, context: Context) -> dict[str, list[PathString]]:
install: list[PathString] = [
+ "zypper",
"install",
"--download", "in-advance",
"--recommends" if context.config.with_recommends else "--no-recommends",
return {
"zypper": apivfs_cmd(context.root) + cls.cmd(context),
"rpm" : apivfs_cmd(context.root) + rpm_cmd(context),
- "mkosi-install" : apivfs_cmd(context.root) + cls.cmd(context) + install,
- "mkosi-upgrade" : apivfs_cmd(context.root) + cls.cmd(context) + ["update"],
- "mkosi-remove" : apivfs_cmd(context.root) + cls.cmd(context) + ["remove", "--clean-deps"],
- "mkosi-reinstall": apivfs_cmd(context.root) + cls.cmd(context) + install + ["--force"],
+ "mkosi-install" : install,
+ "mkosi-upgrade" : ["zypper", "update"],
+ "mkosi-remove" : ["zypper", "remove", "--clean-deps"],
+ "mkosi-reinstall": install + ["--force"],
}
@classmethod