diff --git a/src/python/jw/pkg/App.py b/src/python/jw/pkg/App.py index f58698fc..6daeaa74 100644 --- a/src/python/jw/pkg/App.py +++ b/src/python/jw/pkg/App.py @@ -12,7 +12,7 @@ if TYPE_CHECKING: import os, sys, pwd, re import os, sys, argparse, pwd, re -from functools import lru_cache +from functools import lru_cache, cached_property from enum import Enum, auto from .lib.App import App as Base @@ -374,6 +374,14 @@ class App(Base): def distro_cascade(self) -> str: return ' '.join(self.os_cascade()) + @cached_property + def distro_pkg_ext(self) -> str: + for entry in self.os_cascade(): + ret = entry.replace('pkg-', '') + if ret != entry: + return ret + raise RuntimeError(f'No package extension in found in {self.distro_cascade}') + @property def distro_gnu_triplet(self) -> str: