summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorChristopher Larson <chris_larson@mentor.com>2018-06-22 02:07:31 +0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-06-27 13:53:28 +0100
commitc9fdf3d046606a0becb2e6b566a481c483b9021a (patch)
treed78ba4fc68202d6d0c86052432e7e69e70a0ce92 /scripts
parent13269dfbbc62faef32595343dc78250fdb2a2946 (diff)
downloadopenembedded-core-contrib-c9fdf3d046606a0becb2e6b566a481c483b9021a.tar.gz
openembedded-core-contrib-c9fdf3d046606a0becb2e6b566a481c483b9021a.tar.bz2
openembedded-core-contrib-c9fdf3d046606a0becb2e6b566a481c483b9021a.zip
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.py24
1 files changed, 12 insertions, 12 deletions
diff --git a/scripts/lib/scriptutils.py b/scripts/lib/scriptutils.py
index 85b1c949bf..31e48ea4dc 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