summaryrefslogtreecommitdiffstats
path: root/src/utils/probe.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/probe.py')
-rw-r--r--src/utils/probe.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/utils/probe.py b/src/utils/probe.py
index 796bf55..8c77bf9 100644
--- a/src/utils/probe.py
+++ b/src/utils/probe.py
@@ -10,10 +10,13 @@ import os
import subprocess
import platform
+from enum import Enum
from subprocess import PIPE
from src.utils.fs import find_mountpoint
+OSFamily = Enum('OSFamily', ['LINUX', 'WINDOWS', 'UNKNOWN'])
+
def getlinuxversion(osrelease):
"""
Parses a os-release file to fetch 'PRETTY_NAME' key.
@@ -115,6 +118,19 @@ def cache_probe():
stdout = proc_blkid.stdout.decode().strip()
return stdout
+
+def get_os_family(mountpoint):
+ winreghives = f'{mountpoint}/Windows/System32/'
+ osrelease = f'{mountpoint}/etc/os-release'
+
+ if os.path.exists(osrelease):
+ return OSFamily.LINUX
+ elif os.path.exists(winreghives):
+ return OSFamily.WINDOWS
+ else:
+ return OSFamily.UNKNOWN
+
+
def os_probe(mountpoint):
"""
Probes mountpoint for typical OS dependant files.