util/osrelease.py: Replaced string stripping with shlex.split()
- Replaced string stripping with `shlex.split()` to properly handle values in the os-release file; - This ensures cleaner and more accurate key-value assignments, follwing a broader set of shell-like parsing rules; - Add os-release file for Fedora CoreOS 40 for testing. Signed-off-by: Renata Ravanelli <rravanel@redhat.com>
This commit is contained in:
parent
f4b899873b
commit
07d4f6955d
2 changed files with 27 additions and 1 deletions
|
|
@ -5,6 +5,7 @@ related documentation can be found in `os-release(5)`.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import shlex
|
||||||
|
|
||||||
# The default paths where os-release is located, as per os-release(5)
|
# The default paths where os-release is located, as per os-release(5)
|
||||||
DEFAULT_PATHS = [
|
DEFAULT_PATHS = [
|
||||||
|
|
@ -33,7 +34,10 @@ def parse_files(*paths):
|
||||||
if line[0] == "#":
|
if line[0] == "#":
|
||||||
continue
|
continue
|
||||||
key, value = line.split("=", 1)
|
key, value = line.split("=", 1)
|
||||||
osrelease[key] = value.strip('"')
|
split_value = shlex.split(value)
|
||||||
|
if not split_value or len(split_value) > 1:
|
||||||
|
raise ValueError(f"Key '{key}' has an empty value or more than one token: {value}")
|
||||||
|
osrelease[key] = split_value[0]
|
||||||
|
|
||||||
return osrelease
|
return osrelease
|
||||||
|
|
||||||
|
|
|
||||||
22
test/data/os-release/fedora40
Normal file
22
test/data/os-release/fedora40
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
NAME="Fedora Linux"
|
||||||
|
VERSION="40.20241106.dev.0 (CoreOS)"
|
||||||
|
ID=fedora
|
||||||
|
VERSION_ID=40
|
||||||
|
VERSION_CODENAME=""
|
||||||
|
PLATFORM_ID="platform:f40"
|
||||||
|
PRETTY_NAME="Fedora CoreOS 40.20241106.dev.0"
|
||||||
|
ANSI_COLOR="0;38;2;60;110;180"
|
||||||
|
LOGO=fedora-logo-icon
|
||||||
|
CPE_NAME="cpe:/o:fedoraproject:fedora:40"
|
||||||
|
HOME_URL="https://getfedora.org/coreos/"
|
||||||
|
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora-coreos/"
|
||||||
|
SUPPORT_URL="https://github.com/coreos/fedora-coreos-tracker/"
|
||||||
|
BUG_REPORT_URL="https://github.com/coreos/fedora-coreos-tracker/"
|
||||||
|
REDHAT_BUGZILLA_PRODUCT="Fedora"
|
||||||
|
REDHAT_BUGZILLA_PRODUCT_VERSION=40
|
||||||
|
REDHAT_SUPPORT_PRODUCT="Fedora"
|
||||||
|
REDHAT_SUPPORT_PRODUCT_VERSION=40
|
||||||
|
SUPPORT_END=2025-05-13
|
||||||
|
VARIANT="CoreOS"
|
||||||
|
VARIANT_ID=coreos
|
||||||
|
OSTREE_VERSION='40.20241106.dev.0'
|
||||||
Loading…
Add table
Add a link
Reference in a new issue