From f445b196c94320e29958eda73bebea3e4f895ac1 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Thu, 16 Apr 2026 14:37:42 +0200 Subject: [PATCH] App.distro_pkg_ext: Add property Add .distro_pkg_ext to App, in order to support something along the lines of jw-pkg distro install "https://my-company.com/repos/%{id}/%{codename}/my-base-pkg-latest.%{pkg-ext}" Signed-off-by: Jan Lindemann --- src/python/jw/pkg/App.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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: