From 4d327fbc953aa5adbcb3cfa1054bd7d33fd0bff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sat, 3 Sep 2016 03:25:52 +0200 Subject: [PATCH] qubes/tools: allow calling qvm-device as qvm-devclass (like qvm-pci) Tool can be symlinked to `qvm-class` for particular device class (for example `qvm-pci`) - then device class can be omitted. QubesOS/qubes-issues#2257 --- Makefile | 2 ++ qubes/tools/qvm_device.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5632f326..6c798289 100644 --- a/Makefile +++ b/Makefile @@ -57,6 +57,8 @@ ifeq ($(OS),Linux) $(MAKE) install -C linux/system-config endif python setup.py install -O1 --skip-build --root $(DESTDIR) + ln -s qvm-device $(DESTDIR)/usr/bin/qvm-pci + ln -s qvm-device $(DESTDIR)/usr/bin/qvm-usb # $(MAKE) install -C tests $(MAKE) install -C relaxng mkdir -p $(DESTDIR)/etc/qubes diff --git a/qubes/tools/qvm_device.py b/qubes/tools/qvm_device.py index 4dcf398c..df20ad94 100644 --- a/qubes/tools/qvm_device.py +++ b/qubes/tools/qvm_device.py @@ -186,7 +186,11 @@ def get_parser(device_class=None): def main(args=None): '''Main routine of :program:`qvm-block`.''' - args = get_parser().parse_args(args) + basename = os.path.basename(sys.argv[0]) + devclass = None + if basename.startswith('qvm-') and basename != 'qvm-device': + devclass = basename[4:] + args = get_parser(devclass).parse_args(args) try: args.func(args) except qubes.exc.QubesException as e: