From 2c035b266f7a7f904afa7698706eba1361b41411 Mon Sep 17 00:00:00 2001 From: Chang Rebecca Swee Fun Date: Wed, 28 Jun 2017 09:59:17 +0800 Subject: scriptutils: exit politely when no text editor available devtool edit-recipe now has ugly tracebacks if executed without an editor available. This happens in the build containers whenever no text editor is available. subprocess.check_call will run text editing command with recipe path provided. It will wait for command to complete. If the return code was zero then return, otherwise raise CalledProcessError exception. This enhancement will suppress the traceback by catching the exception and prompt the error messages in a proper manner shown below: pokyuser@59c99c507238:/workdir/docker-dbg$ devtool edit-recipe ifupdown /bin/sh: 1: vi: not found ERROR: Execution of 'vi' failed: Command 'vi "/workdir/docker-dbg/workspace/recipes/ifupdown/ifupdown_0.8.16.bb"' returned non-zero exit status 127 [YOCTO #11434] (From OE-Core rev: c536ccfd162fc8871838fa229012c562e3f8e0d9) Signed-off-by: Chang Rebecca Swee Fun Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- scripts/lib/scriptutils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/lib/scriptutils.py b/scripts/lib/scriptutils.py index 1005dd495a..b6217dc059 100644 --- a/scripts/lib/scriptutils.py +++ b/scripts/lib/scriptutils.py @@ -216,8 +216,8 @@ def run_editor(fn): editor = os.getenv('VISUAL', os.getenv('EDITOR', 'vi')) try: return subprocess.check_call('%s %s' % (editor, params), shell=True) - except OSError as exc: - logger.error("Execution of editor '%s' failed: %s", editor, exc) + except subprocess.CalledProcessError as exc: + logger.error("Execution of '%s' failed: %s" % (editor, exc)) return 1 def is_src_url(param): -- cgit v1.2.3-54-g00ecf