diff options
author | Christopher Larson <chris_larson@mentor.com> | 2018-06-22 02:07:31 +0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-06-27 13:53:28 +0100 |
commit | c9fdf3d046606a0becb2e6b566a481c483b9021a (patch) | |
tree | d78ba4fc68202d6d0c86052432e7e69e70a0ce92 /scripts | |
parent | 13269dfbbc62faef32595343dc78250fdb2a2946 (diff) | |
download | openembedded-core-contrib-c9fdf3d046606a0becb2e6b566a481c483b9021a.tar.gz |
oe.scriptutils.run_editor: ditch the error-prone argument quoting
Rather than trying to construct a string by quoting the files in an
error-prone way, parse $EDITOR to pass a list to subprocess rather than
a string.
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/scriptutils.py | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/scripts/lib/scriptutils.py b/scripts/lib/scriptutils.py index 85b1c949bf5..31e48ea4dc1 100644 --- a/scripts/lib/scriptutils.py +++ b/scripts/lib/scriptutils.py @@ -15,16 +15,17 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -import sys -import os -import logging -import glob import argparse -import subprocess -import tempfile -import shutil +import glob +import logging +import os import random +import shlex +import shutil import string +import subprocess +import sys +import tempfile def logger_create(name, stream=None): logger = logging.getLogger(name) @@ -214,15 +215,14 @@ def fetch_url(tinfoil, srcuri, srcrev, destdir, logger, preserve_tmp=False, mirr def run_editor(fn, logger=None): if isinstance(fn, str): - params = '"%s"' % fn + files = [fn] else: - params = '' - for fnitem in fn: - params += ' "%s"' % fnitem + files = fn editor = os.getenv('VISUAL', os.getenv('EDITOR', 'vi')) try: - return subprocess.check_call('%s %s' % (editor, params), shell=True) + #print(shlex.split(editor) + files) + return subprocess.check_call(shlex.split(editor) + files) except subprocess.CalledProcessError as exc: logger.error("Execution of '%s' failed: %s" % (editor, exc)) return 1 |