]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
man/check-os-release.py: ignore comment and empty lines
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 22 May 2021 18:23:02 +0000 (20:23 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 22 May 2021 18:44:04 +0000 (20:44 +0200)
Plus fix off-by-one in error printing.

man/check-os-release.py

index 069ca74b20e636bb937b088da689c06b140a9a4e..2440202349cf6c1dc12eb30f082f12c44174d3f2 100644 (file)
@@ -2,21 +2,28 @@
 
 import ast
 import re
+import sys
 
 def read_os_release():
     try:
-        f = open('/etc/os-release')
+        filename = '/etc/os-release'
+        f = open(filename)
     except FileNotFoundError:
-        f = open('/usr/lib/os-release')
+        filename = '/usr/lib/os-release'
+        f = open(filename)
 
     for line_number, line in enumerate(f):
-        if m := re.match(r'([A-Z][A-Z_0-9]+)=(.*?)\s*$', line):
+        line = line.rstrip()
+        if not line or line.startswith('#'):
+            continue
+        if m := re.match(r'([A-Z][A-Z_0-9]+)=(.*)', line):
             name, val = m.groups()
             if val and val[0] in '"\'':
                 val = ast.literal_eval(val)
             yield name, val
         else:
-            print(f'Warning: bad line {line_number}: {line}', file=sys.stderr)
+            print(f'{filename}:{line_number + 1}: bad line {line!r}',
+                  file=sys.stderr)
 
 os_release = dict(read_os_release())