mirror of
https://github.com/systemd/systemd
synced 2025-10-06 00:13:24 +02:00
All those files are standalone programs that can be executed directly. Some .py files were marked executable, others weren't, probably accidentally. Mark them all as executable in preparation for subsequent changes.
38 lines
1023 B
Python
Executable File
38 lines
1023 B
Python
Executable File
#!/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!')
|