diff options
Diffstat (limited to 'src/utils/probe.py')
-rw-r--r-- | src/utils/probe.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/utils/probe.py b/src/utils/probe.py index c6e3680..8c0e39a 100644 --- a/src/utils/probe.py +++ b/src/utils/probe.py @@ -112,6 +112,28 @@ def linux_is64bit(mountpoint): return True if bits == '64bit' else False return os.path.exists(lib64_path) +def get_linux_distro_id(mountpoint): + """ + Parses a os-release file and fetches the 'ID' key. + Check repository documentation at ./ogclient/os-release-ids.txt + for a list of the potential strings it might return. + If file or key are not found, then returns generic 'linux' string. + """ + osrelease = f'{mountpoint}/etc/os-release' + + try: + with open(osrelease, 'r') as f: + for line in f: + if line.find('=') == -1: + continue + key, value = line.split('=') + if key == 'ID': + value = value.replace('\n', '') + value = value.strip('"') + return value + except FileNotFoundError as e: + logging.error(f'os-release file not found at "{osrelease}"') + return 'linux' def cache_probe(): """ |