]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Reuse existing scripts for mkosi-install
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 22 Feb 2024 17:23:35 +0000 (18:23 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 22 Feb 2024 17:55:11 +0000 (18:55 +0100)
Otherwise we'll expand the full command line twice, once as part
of the mkosi-install script, in which apt-get is expanded again.

mkosi/installer/apt.py
mkosi/installer/dnf.py
mkosi/installer/pacman.py
mkosi/installer/zypper.py

index 3e9ab6cafe152f719544a85bf53a98288811d46a..475d8d891a94d73c0789c8c22f721fbe38e1a42d 100644 (file)
@@ -3,7 +3,7 @@ import os
 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
@@ -62,12 +62,12 @@ class Apt(PackageManager):
                 "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:
index 3a745099038ca51b2892885ecf7a93116431ebfe..e74fd48c29a627bee47063cbcc72b7411da09b2b 100644 (file)
@@ -41,10 +41,10 @@ class Dnf(PackageManager):
         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
index 1c5982ad81528ecac5a7cdf089617f691b528fa0..45969da5983d16e2ba8cc6d95dae8469cd2f9562 100644 (file)
@@ -38,10 +38,10 @@ class Pacman(PackageManager):
     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
index 148aba5632f5de0560309bd3246a86d7bc3cba37..6fb7ed192dddfd1259dd0aa6e1b893a99953b236 100644 (file)
@@ -31,6 +31,7 @@ class Zypper(PackageManager):
     @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",
@@ -39,10 +40,10 @@ class Zypper(PackageManager):
         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