From: Joerg Behrmann Date: Tue, 4 Oct 2022 15:51:30 +0000 (+0200) Subject: Add remove_packages method to DistributionInstaller X-Git-Tag: v15~384^2~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef1aa7bd406f5ec78f59cd8facff5caba74b3848;p=thirdparty%2Fmkosi.git Add remove_packages method to DistributionInstaller This should probably live in PackageType, but there is a strong dependence between package type and distribution and I haven't figured out a good way to do this without cyclical imports. --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index c53053751..58cac8f82 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -2623,7 +2623,9 @@ def remove_packages(state: MkosiState) -> None: remove: Callable[[List[str]], Any] - if (state.config.distribution.package_type == PackageType.rpm): + if state.installer is not None: + remove = lambda p: state.installer.remove_packages(state, p) # type: ignore + elif (state.config.distribution.package_type == PackageType.rpm): remove = lambda p: invoke_dnf(state, 'remove', p) elif state.config.distribution.package_type == PackageType.deb: remove = lambda p: invoke_apt(state, "get", "purge", ["--assume-yes", "--auto-remove", *p]) diff --git a/mkosi/distributions/__init__.py b/mkosi/distributions/__init__.py index 751773d9d..b951f9a1c 100644 --- a/mkosi/distributions/__init__.py +++ b/mkosi/distributions/__init__.py @@ -19,3 +19,7 @@ class DistributionInstaller: @classmethod def cache_path(cls) -> List[str]: raise NotImplementedError + + @classmethod + def remove_packages(cls, state: "MkosiState", remove: List[str]) -> None: + pass