]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Pass in a single arguments parameter to invoke() methods
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 15 Feb 2024 09:57:29 +0000 (10:57 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 15 Feb 2024 18:57:56 +0000 (19:57 +0100)
Instead of passing in packages and options separately, let's just
have a single arguments parameter.

mkosi/distributions/arch.py
mkosi/distributions/opensuse.py
mkosi/installer/apt.py
mkosi/installer/dnf.py
mkosi/installer/pacman.py
mkosi/installer/zypper.py

index 4bca1f05fcf4e596481a082162c5465285ac9830..edae80c3f58bc7d62431fcd75c79b3cbdf0d0845 100644 (file)
@@ -8,7 +8,7 @@ from mkosi.distributions import Distribution, DistributionInstaller, PackageType
 from mkosi.installer import PackageManager
 from mkosi.installer.pacman import Pacman
 from mkosi.log import die
-from mkosi.util import listify
+from mkosi.util import listify, sort_packages
 
 
 class Installer(DistributionInstaller):
@@ -57,14 +57,13 @@ class Installer(DistributionInstaller):
         Pacman.invoke(
             context,
             "--sync",
-            ["--needed", "--assume-installed", "initramfs"],
-            packages,
+            ["--needed", "--assume-installed", "initramfs", *sort_packages(packages)],
             apivfs=apivfs,
         )
 
     @classmethod
     def remove_packages(cls, context: Context, packages: Sequence[str]) -> None:
-        Pacman.invoke(context, "--remove", ["--nosave", "--recursive"], packages, apivfs=True)
+        Pacman.invoke(context, "--remove", ["--nosave", "--recursive", *packages], apivfs=True)
 
     @classmethod
     @listify
index 4e6a57189a960e3cf762d596b290ee16103c7330..740f6974a2d9ffc9e99f2d80f9dc230f12a668a2 100644 (file)
@@ -15,7 +15,7 @@ from mkosi.installer.zypper import Zypper
 from mkosi.log import die
 from mkosi.run import find_binary, run
 from mkosi.sandbox import finalize_crypto_mounts
-from mkosi.util import listify
+from mkosi.util import listify, sort_packages
 
 
 class Installer(DistributionInstaller):
@@ -80,18 +80,22 @@ class Installer(DistributionInstaller):
     @classmethod
     def install_packages(cls, context: Context, packages: Sequence[str], apivfs: bool = True) -> None:
         if find_binary("zypper", root=context.config.tools()):
-            options = [
-                "--download", "in-advance",
-                "--recommends" if context.config.with_recommends else "--no-recommends",
-            ]
-            Zypper.invoke(context, "install", packages, options=options, apivfs=apivfs)
+            Zypper.invoke(
+                context,
+                "install",
+                [
+                    "--download", "in-advance",
+                    "--recommends" if context.config.with_recommends else "--no-recommends",
+                    *sort_packages(packages),
+                ],
+                apivfs=apivfs)
         else:
-            Dnf.invoke(context, "install", packages, apivfs=apivfs)
+            Dnf.invoke(context, "install", sort_packages(packages), apivfs=apivfs)
 
     @classmethod
     def remove_packages(cls, context: Context, packages: Sequence[str]) -> None:
         if find_binary("zypper", root=context.config.tools()):
-            Zypper.invoke(context, "remove", packages, options=["--clean-deps"], apivfs=True)
+            Zypper.invoke(context, "remove", ["--clean-deps", *sort_packages(packages)], apivfs=True)
         else:
             Dnf.invoke(context, "remove", packages, apivfs=True)
 
index e3f454a83279d619dfcf6db251efe5156e9b6575..8e85e661854622e79db14bb44367fd716e6352c3 100644 (file)
@@ -12,7 +12,7 @@ from mkosi.mounts import finalize_ephemeral_source_mounts
 from mkosi.run import find_binary, run
 from mkosi.sandbox import apivfs_cmd
 from mkosi.types import CompletedProcess, PathString
-from mkosi.util import sort_packages, umask
+from mkosi.util import umask
 
 
 class Apt(PackageManager):
@@ -167,15 +167,14 @@ class Apt(PackageManager):
         cls,
         context: Context,
         operation: str,
-        packages: Sequence[str] = (),
+        arguments: Sequence[str] = (),
         *,
-        options: Sequence[str] = (),
         apivfs: bool = False,
         mounts: Sequence[PathString] = (),
     ) -> CompletedProcess:
         with finalize_ephemeral_source_mounts(context.config) as sources:
             return run(
-                cls.cmd(context, "apt-get") + [operation, *options, *sort_packages(packages)],
+                cls.cmd(context, "apt-get") + [operation, *arguments],
                 sandbox=(
                     context.sandbox(
                         network=True,
@@ -225,7 +224,7 @@ class Apt(PackageManager):
         cls.invoke(
             context,
             "update",
-            options=[
+            arguments=[
                 "-o", "Dir::Etc::sourcelist=sources.list.d/mkosi-local.sources",
                 "-o", "Dir::Etc::sourceparts=-",
                 "-o", "APT::Get::List-Cleanup=0",
index 19b5cf8ea800b1be34e5b6f8ff0b76bc3377ffad..a24d01bc090ccf4e78985de3365612e62bff4a82 100644 (file)
@@ -12,7 +12,6 @@ from mkosi.mounts import finalize_ephemeral_source_mounts
 from mkosi.run import find_binary, run
 from mkosi.sandbox import apivfs_cmd
 from mkosi.types import CompletedProcess, PathString
-from mkosi.util import sort_packages
 
 
 class Dnf(PackageManager):
@@ -155,14 +154,14 @@ class Dnf(PackageManager):
         cls,
         context: Context,
         operation: str,
-        packages: Iterable[str] = (),
-        options: Sequence[str] = (),
+        arguments: Sequence[str] = (),
+        *,
         apivfs: bool = False,
     ) -> CompletedProcess:
         try:
             with finalize_ephemeral_source_mounts(context.config) as sources:
                 return run(
-                    cls.cmd(context) + [operation, *options, *sort_packages(packages)],
+                    cls.cmd(context) + [operation,*arguments],
                     sandbox=(
                         context.sandbox(
                             network=True,
@@ -189,7 +188,7 @@ class Dnf(PackageManager):
         cls.invoke(
             context,
             "makecache",
-            options=[
+            arguments=[
                 "--refresh",
                 *(["--setopt=cacheonly=none"] if cls.executable(context.config) == "dnf5" else []),
                 *options,
index c35d57b1163a4e201030b8ade066a952b0ff3e54..0ff183b0c3ef034e5b5902dee625772f094fc7ce 100644 (file)
@@ -12,7 +12,7 @@ from mkosi.mounts import finalize_ephemeral_source_mounts
 from mkosi.run import run
 from mkosi.sandbox import apivfs_cmd
 from mkosi.types import CompletedProcess, PathString
-from mkosi.util import sort_packages, umask
+from mkosi.util import umask
 from mkosi.versioncomp import GenericVersion
 
 
@@ -145,13 +145,13 @@ class Pacman(PackageManager):
         cls,
         context: Context,
         operation: str,
-        options: Sequence[str] = (),
-        packages: Sequence[str] = (),
+        arguments: Sequence[str] = (),
+        *,
         apivfs: bool = False,
     ) -> CompletedProcess:
         with finalize_ephemeral_source_mounts(context.config) as sources:
             return run(
-                cls.cmd(context) + [operation, *options, *sort_packages(packages)],
+                cls.cmd(context) + [operation, *arguments],
                 sandbox=(
                     context.sandbox(
                         network=True,
index 1f8f2e8df7615eb6afa73293d73330245593c1f3..1db59df3f26f46b2160c863dc78aec548157dcf0 100644 (file)
@@ -12,7 +12,6 @@ from mkosi.mounts import finalize_ephemeral_source_mounts
 from mkosi.run import run
 from mkosi.sandbox import apivfs_cmd
 from mkosi.types import CompletedProcess, PathString
-from mkosi.util import sort_packages
 
 
 class Zypper(PackageManager):
@@ -115,14 +114,13 @@ class Zypper(PackageManager):
         cls,
         context: Context,
         operation: str,
-        packages: Sequence[str] = (),
+        arguments: Sequence[str] = (),
         *,
-        options: Sequence[str] = (),
         apivfs: bool = False,
     ) -> CompletedProcess:
         with finalize_ephemeral_source_mounts(context.config) as sources:
             return run(
-                cls.cmd(context) + [operation, *options, *sort_packages(packages)],
+                cls.cmd(context) + [operation, *arguments],
                 sandbox=(
                     context.sandbox(
                         network=True,