diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:49:52 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:49:52 +0000 |
commit | 55944e5e40b1be2afc4855d8d2baf4b73d1876b5 (patch) | |
tree | 33f869f55a1b149e9b7c2b7e201867ca5dd52992 /man/check-os-release.py | |
parent | Initial commit. (diff) | |
download | systemd-55944e5e40b1be2afc4855d8d2baf4b73d1876b5.tar.xz systemd-55944e5e40b1be2afc4855d8d2baf4b73d1876b5.zip |
Adding upstream version 255.4.upstream/255.4
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/check-os-release.py')
-rw-r--r-- | man/check-os-release.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/man/check-os-release.py b/man/check-os-release.py new file mode 100644 index 0000000..19b193e --- /dev/null +++ b/man/check-os-release.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# SPDX-License-Identifier: MIT-0 + +import ast +import re +import sys + +def read_os_release(): + try: + filename = '/etc/os-release' + f = open(filename) + except FileNotFoundError: + filename = '/usr/lib/os-release' + f = open(filename) + + for line_number, line in enumerate(f, start=1): + line = line.rstrip() + if not line or line.startswith('#'): + continue + m = re.match(r'([A-Z][A-Z_0-9]+)=(.*)', line) + if m: + name, val = m.groups() + if val and val[0] in '"\'': + val = ast.literal_eval(val) + yield name, val + else: + print(f'{filename}:{line_number}: bad line {line!r}', + file=sys.stderr) + +os_release = dict(read_os_release()) + +pretty_name = os_release.get('PRETTY_NAME', 'Linux') +print(f'Running on {pretty_name!r}') + +if 'debian' in [os_release.get('ID', 'linux'), + *os_release.get('ID_LIKE', '').split()]: + print('Looks like Debian!') |