diff options
-rw-r--r-- | scripts/lib/devtool/utilcmds.py | 13 | ||||
-rw-r--r-- | scripts/lib/recipetool/newappend.py | 8 | ||||
-rw-r--r-- | scripts/lib/scriptutils.py | 15 |
3 files changed, 19 insertions, 17 deletions
diff --git a/scripts/lib/devtool/utilcmds.py b/scripts/lib/devtool/utilcmds.py index a8f5e97833..18eddb78b0 100644 --- a/scripts/lib/devtool/utilcmds.py +++ b/scripts/lib/devtool/utilcmds.py | |||
@@ -24,6 +24,7 @@ import tempfile | |||
24 | import logging | 24 | import logging |
25 | import argparse | 25 | import argparse |
26 | import subprocess | 26 | import subprocess |
27 | import scriptutils | ||
27 | from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, DevtoolError | 28 | from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, DevtoolError |
28 | from devtool import parse_recipe | 29 | from devtool import parse_recipe |
29 | 30 | ||
@@ -48,17 +49,7 @@ def edit_recipe(args, config, basepath, workspace): | |||
48 | raise DevtoolError("Recipe file for %s is not under the workspace" % | 49 | raise DevtoolError("Recipe file for %s is not under the workspace" % |
49 | args.recipename) | 50 | args.recipename) |
50 | 51 | ||
51 | editor = os.environ.get('EDITOR', None) | 52 | return scriptutils.run_editor(recipefile) |
52 | if not editor: | ||
53 | raise DevtoolError("EDITOR environment variable not set") | ||
54 | |||
55 | import subprocess | ||
56 | try: | ||
57 | subprocess.check_call('%s "%s"' % (editor, recipefile), shell=True) | ||
58 | except subprocess.CalledProcessError as e: | ||
59 | return e.returncode | ||
60 | |||
61 | return 0 | ||
62 | 53 | ||
63 | 54 | ||
64 | def configure_help(args, config, basepath, workspace): | 55 | def configure_help(args, config, basepath, workspace): |
diff --git a/scripts/lib/recipetool/newappend.py b/scripts/lib/recipetool/newappend.py index 5625a8ed52..bdf0693ec7 100644 --- a/scripts/lib/recipetool/newappend.py +++ b/scripts/lib/recipetool/newappend.py | |||
@@ -27,6 +27,7 @@ import os | |||
27 | import re | 27 | import re |
28 | import subprocess | 28 | import subprocess |
29 | import sys | 29 | import sys |
30 | import scriptutils | ||
30 | 31 | ||
31 | 32 | ||
32 | logger = logging.getLogger('recipetool') | 33 | logger = logging.getLogger('recipetool') |
@@ -96,12 +97,7 @@ def newappend(args): | |||
96 | return 1 | 97 | return 1 |
97 | 98 | ||
98 | if args.edit: | 99 | if args.edit: |
99 | editor = os.getenv('VISUAL', os.getenv('EDITOR', 'vi')) | 100 | return scriptutils.run_editor([append_path, recipe_path]) |
100 | try: | ||
101 | return subprocess.check_call([editor, append_path, recipe_path]) | ||
102 | except OSError as exc: | ||
103 | logger.error("Execution of editor '%s' failed: %s", editor, exc) | ||
104 | return 1 | ||
105 | else: | 101 | else: |
106 | print(append_path) | 102 | print(append_path) |
107 | 103 | ||
diff --git a/scripts/lib/scriptutils.py b/scripts/lib/scriptutils.py index 69e76d8ea2..aef19d3d73 100644 --- a/scripts/lib/scriptutils.py +++ b/scripts/lib/scriptutils.py | |||
@@ -20,6 +20,7 @@ import os | |||
20 | import logging | 20 | import logging |
21 | import glob | 21 | import glob |
22 | import argparse | 22 | import argparse |
23 | import subprocess | ||
23 | 24 | ||
24 | def logger_create(name): | 25 | def logger_create(name): |
25 | logger = logging.getLogger(name) | 26 | logger = logging.getLogger(name) |
@@ -101,3 +102,17 @@ def fetch_uri(d, uri, destdir, srcrev=None): | |||
101 | os.chdir(olddir) | 102 | os.chdir(olddir) |
102 | return ret | 103 | return ret |
103 | 104 | ||
105 | def run_editor(fn): | ||
106 | if isinstance(fn, basestring): | ||
107 | params = '"%s"' % fn | ||
108 | else: | ||
109 | params = '' | ||
110 | for fnitem in fn: | ||
111 | params += ' "%s"' % fnitem | ||
112 | |||
113 | editor = os.getenv('VISUAL', os.getenv('EDITOR', 'vi')) | ||
114 | try: | ||
115 | return subprocess.check_call('%s %s' % (editor, params), shell=True) | ||
116 | except OSError as exc: | ||
117 | logger.error("Execution of editor '%s' failed: %s", editor, exc) | ||
118 | return 1 | ||