From 9970c8e33d7a422e807a23af712236db01284f9a Mon Sep 17 00:00:00 2001 From: Alejandro Sirgo Rica Date: Wed, 6 Mar 2024 21:38:27 +0100 Subject: utils: handle missing file in getlinuxversion function The function getlinuxversion receives a path to the os-release file. The case of not being able to open it was not handled and thus causing an unwanted exception. --- src/utils/probe.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/utils/probe.py b/src/utils/probe.py index 8c77bf9..c6e3680 100644 --- a/src/utils/probe.py +++ b/src/utils/probe.py @@ -9,6 +9,7 @@ import os import subprocess import platform +import logging from enum import Enum from subprocess import PIPE @@ -25,17 +26,20 @@ def getlinuxversion(osrelease): """ mountpoint = find_mountpoint(osrelease) - with open(osrelease, 'r') as f: - for line in f: - if line.find('=') == -1: - continue - key, value = line.split('=') - if key == 'PRETTY_NAME': - value = value.replace('\n', '') - value = value.strip('"') - bits = ' 64 bits' if linux_is64bit(mountpoint) else '' - return f'{value}{bits}' - return 'Linux' + try: + with open(osrelease, 'r') as f: + for line in f: + if line.find('=') == -1: + continue + key, value = line.split('=') + if key == 'PRETTY_NAME': + value = value.replace('\n', '') + value = value.strip('"') + bits = ' 64 bits' if linux_is64bit(mountpoint) else '' + return f'{value}{bits}' + except FileNotFoundError as e: + logging.error(f'os-release file not found at "{osrelease}"') + return 'Linux' def getwindowsversion(winreghives): -- cgit v1.2.3-18-g5258