From 2bd518fe3a8cb0022a816a7d1ac8d9a3dedee6d9 Mon Sep 17 00:00:00 2001 From: Christopher Larson Date: Tue, 9 Feb 2016 16:12:06 -0700 Subject: recipetool.newappend: add -e/--edit argument Signed-off-by: Christopher Larson Signed-off-by: Ross Burton --- scripts/lib/recipetool/newappend.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/lib/recipetool/newappend.py b/scripts/lib/recipetool/newappend.py index f9b8d85ecf..5625a8ed52 100644 --- a/scripts/lib/recipetool/newappend.py +++ b/scripts/lib/recipetool/newappend.py @@ -25,6 +25,7 @@ import errno import logging import os import re +import subprocess import sys @@ -89,17 +90,26 @@ def newappend(args): bb.utils.mkdirhier(os.path.dirname(append_path)) try: - open(append_path, 'a') + open(append_path, 'a').close() except (OSError, IOError) as exc: logger.critical(str(exc)) return 1 - print(append_path) + if args.edit: + editor = os.getenv('VISUAL', os.getenv('EDITOR', 'vi')) + try: + return subprocess.check_call([editor, append_path, recipe_path]) + except OSError as exc: + logger.error("Execution of editor '%s' failed: %s", editor, exc) + return 1 + else: + print(append_path) def register_commands(subparsers): parser = subparsers.add_parser('newappend', help='Create a bbappend for the specified target in the specified layer') + parser.add_argument('-e', '--edit', help='Edit the new append. This obeys $VISUAL if set, otherwise $EDITOR, otherwise vi.', action='store_true') parser.add_argument('-w', '--wildcard-version', help='Use wildcard to make the bbappend apply to any recipe version', action='store_true') parser.add_argument('destlayer', help='Base directory of the destination layer to write the bbappend to', type=layer) parser.add_argument('target', help='Target recipe/provide to append') -- cgit 1.2.3-korg