mirror of https://git.48k.eu/ogclient
probe: add basic os family detection
Add a basic OS family enumeration: OSFamily. Add utility function that probes for an installed Linux or Windows system, returns the corresponding enum value, OSFamily.UNKNOWN otherwise.master
parent
bb3264d8f4
commit
e3c375f8d7
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue