diff options
author | Andy Lutomirski <luto@kernel.org> | 2019-09-27 13:39:40 -0700 |
---|---|---|
committer | Andy Lutomirski <luto@kernel.org> | 2019-09-27 13:39:40 -0700 |
commit | 1a0c124b4f7eb1e0d7c08ed00f401e2485fc1cbb (patch) | |
tree | da16d10a23b652a8712516fc0fd5d1d965337534 | |
parent | 9a8d4477ea68a191ffd3140b8f149d88bf1a58e4 (diff) | |
download | virtme-1a0c124b4f7eb1e0d7c08ed00f401e2485fc1cbb.tar.gz |
Print a less awful error message when virtme-prep-kdir-mods fails
Signed-off-by: Andy Lutomirski <luto@kernel.org>
-rw-r--r-- | virtme/commands/run.py | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/virtme/commands/run.py b/virtme/commands/run.py index 53a86ed..16422d1 100644 --- a/virtme/commands/run.py +++ b/virtme/commands/run.py @@ -18,6 +18,7 @@ import shlex import re import itertools import pkg_resources +import subprocess from .. import virtmods from .. import modfinder from .. import mkinitramfs @@ -27,6 +28,9 @@ from .. import guest_tools uname = os.uname() +class SilentError(Exception): + pass + def make_parser(): parser = argparse.ArgumentParser( description='Virtualize your system (or another) under a kernel image', @@ -180,8 +184,11 @@ def find_kernel_and_mods(arch, args): arg_fail("please run virtme-prep-kdir-mods to update virtme's kernel modules directory or use --mods=auto", show_usage=False) else: # Auto-refresh virtme's kernel modules directory - guest_tools.run_script('virtme-prep-kdir-mods') - kernel.moddir = os.path.join(virtme_mods, 'lib/modules', '0.0.0') + try: + guest_tools.run_script('virtme-prep-kdir-mods') + except subprocess.CalledProcessError: + raise SilentError() + kernel.moddir = os.path.join(virtme_mods, 'lib/modules', '0.0.0') kernel.modfiles = modfinder.find_modules_from_install( virtmods.MODALIASES, root=virtme_mods, kver='0.0.0') else: @@ -227,7 +234,7 @@ _SAFE_PATH_PATTERN = '[a-zA-Z0-9_+ /.-]+' _RWDIR_RE = re.compile('^(%s)(?:=(%s))?$' % (_SAFE_PATH_PATTERN, _SAFE_PATH_PATTERN)) -def main(): +def do_it(): args = _ARGPARSER.parse_args() arch = architectures.get(args.arch) @@ -540,5 +547,14 @@ def main(): if not args.dry_run: os.execv(qemu.qemubin, qemuargs) +def main(): + try: + do_it() + except SilentError: + return 1 + if __name__ == '__main__': - exit(main()) + try: + exit(main()) + except SilentError: + exit(1) |