summaryrefslogtreecommitdiffstats
path: root/inspect.py
diff options
context:
space:
mode:
authorMürsel Türk2022-10-10 22:04:19 +0200
committerMürsel Türk2022-10-10 22:04:19 +0200
commit6426257fd0b3c5e176e2a3a29bdaa07aee0cbc0d (patch)
tree4966d5cdc7090fc9c4d1aaa06cae9741fc0c9b38 /inspect.py
parentSome improvements (diff)
downloadvm-inspector-6426257fd0b3c5e176e2a3a29bdaa07aee0cbc0d.tar.gz
vm-inspector-6426257fd0b3c5e176e2a3a29bdaa07aee0cbc0d.tar.xz
vm-inspector-6426257fd0b3c5e176e2a3a29bdaa07aee0cbc0d.zip
Improve detection of used package manager
Diffstat (limited to 'inspect.py')
-rwxr-xr-xinspect.py42
1 files changed, 18 insertions, 24 deletions
diff --git a/inspect.py b/inspect.py
index 5f1842f..a6a3e9e 100755
--- a/inspect.py
+++ b/inspect.py
@@ -3,7 +3,6 @@
import argparse
import logging
import os
-import re
import sys
from tools import libvmdk, libvslvm, lklfuse, nbdfuse, subfiles, unmount, rmdir
@@ -37,13 +36,6 @@ if args.verbose:
else:
logging.basicConfig(level=logging.CRITICAL)
-APK = re.compile(r"^(Alpine).*$")
-DPKG = re.compile(r"^(Debian|Ubuntu|Linux\sMint|LMDE).*$")
-PACMAN = re.compile(r"^(Arch|Manjaro).*$")
-PORTAGE = re.compile(r"^(Gentoo).*$")
-RPM = re.compile(r"^(CentOS|AlmaLinux|Scientific|Rocky|Oracle|openSUSE|Fedora).*$") # noqa
-WIN = re.compile(r"^(Microsoft|Windows).*$")
-
if args.backend == "libvmdk":
image_mp = libvmdk.mount(args.image)
else:
@@ -92,22 +84,24 @@ for k, v in fs_mps:
break
apps = []
-if os_name := os_info.get("name"):
- for k, _ in fs_mps:
- if APK.match(os_name):
- apps = list_applications_apk(k)
- elif DPKG.match(os_name):
- apps = list_applications_dpkg(k)
- elif PACMAN.match(os_name):
- apps = list_applications_pacman(k)
- elif PORTAGE.match(os_name):
- apps = list_applications_portage(k)
- elif RPM.match(os_name):
- apps = list_applications_rpm(k)
- elif WIN.match(os_name):
- apps = list_applications_windows(k)
- if apps:
- break
+package_manager = os_info.get("package_manager", "")
+for k, _ in fs_mps:
+ if package_manager == "apk":
+ apps = list_applications_apk(k)
+ elif package_manager == "dpkg":
+ apps = list_applications_dpkg(k)
+ elif package_manager == "pacman":
+ apps = list_applications_pacman(k)
+ elif package_manager == "portage":
+ apps = list_applications_portage(k)
+ elif package_manager == "rpm":
+ apps = list_applications_rpm(k)
+ elif package_manager == "win":
+ apps = list_applications_windows(k)
+ else:
+ break
+ if apps:
+ break
for k, _ in fs_mps:
unmount(k)