Skip to content

Commit

Permalink
add add DIST_CODENAME with --load-distribution-infos
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanpoelen committed Nov 8, 2023
1 parent 72a88a8 commit 63ce9b4
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 4 deletions.
33 changes: 33 additions & 0 deletions wallix_packager/distroinfo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
class DistroInfo:
_id = ''
_name = ''
_version = ''
_codename = ''

def __init__(self):
with open('/etc/os-release') as f:
s = f.read()
patt = r'(?:^|\n)(NAME|VERSION_CODENAME|ID|VERSION_ID)="?([^\n"]+)'
for m in re.finditer(patt, s):
k = m.group(1)
v = m.group(2)
if k == 'NAME':
self._name = v
elif k == 'ID':
self._id = v
elif k == 'VERSION_ID':
self._version = v
elif k == 'VERSION_CODENAME':
self._codename = v

def id(self) -> str:
return self._id

def name(self) -> str:
return self._name

def version(self) -> str:
return self._version

def codename(self) -> str:
return self._codename
21 changes: 17 additions & 4 deletions wallix_packager/packager.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,25 +50,35 @@ class DistributionInfos(NamedTuple):
distribution_id: str
distribution_name: str
distribution_version: str
distribution_codename: str


def distribution_infos(load_infos: bool,
distribution_id: Optional[str],
distribution_name: Optional[str],
distribution_version: Optional[str]) -> DistributionInfos:
distribution_version: Optional[str],
distribution_codename: Optional[str]) -> DistributionInfos:
if load_infos:
import distro
try:
import distro
except ModuleNotFoundError:
from .distroinfo import DistroInfo
distro = DistroInfo()

if distribution_id is None:
distribution_id = distro.id()
if distribution_name is None:
distribution_name = distro.name()
if distribution_version is None:
distribution_version = distro.version()
if distribution_codename is None:
distribution_codename = distro.codename()

return DistributionInfos(
distribution_id=distribution_id or '',
distribution_name=distribution_name or '',
distribution_version=distribution_version or ''
distribution_version=distribution_version or '',
distribution_codename=distribution_codename or '',
)


Expand Down Expand Up @@ -311,6 +321,7 @@ def add_arguments_for_show_config_command(parser: argparse.ArgumentParser) -> No
parser.add_argument('--distribution-id')
parser.add_argument('--distribution-name')
parser.add_argument('--distribution-version')
parser.add_argument('--distribution-codename')
# py-3.9: action=argparse.BooleanOptionalAction
parser.add_argument('--load-distribution-infos', action='store_true')

Expand Down Expand Up @@ -430,14 +441,16 @@ def make_config(args: argparse.Namespace) -> Dict[str, str]:
dist_infos = distribution_infos(load_infos=args.load_distribution_infos,
distribution_id=args.distribution_id,
distribution_name=args.distribution_name,
distribution_version=args.distribution_version)
distribution_version=args.distribution_version,
distribution_codename=args.distribution_codename)

config = dict(filter(
lambda t: t[1] is not None,
(
('DIST_ID', dist_infos.distribution_id),
('DIST_NAME', dist_infos.distribution_name),
('DIST_VERSION', dist_infos.distribution_version),
('DIST_CODENAME', dist_infos.distribution_codename),
('PKG_DISTRIBUTION', args.package_distribution),
('PROJECT_VERSION', args.project_version),
('PROJECT_NAME', args.project_name),
Expand Down

0 comments on commit 63ce9b4

Please sign in to comment.