[OE-core] [PATCH 1/6] oe.scriptutils.run_editor: ditch the error-prone argument quoting

Richard Purdie richard.purdie at linuxfoundation.org
Wed Jun 27 12:52:16 UTC 2018


On Fri, 2018-06-22 at 02:07 +0500, Christopher Larson wrote:
> From: Christopher Larson <chris_larson at mentor.com>
> 
> 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 at mentor.com>
> ---
>  scripts/lib/scriptutils.py | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/scripts/lib/scriptutils.py b/scripts/lib/scriptutils.py
> index 85b1c949bf5..470f76995f0 100644
> --- a/scripts/lib/scriptutils.py
> +++ b/scripts/lib/scriptutils.py
> @@ -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

I'm guessing you didn't mean to leave the print() above in?

If the print is there, it breaks:

"oe-selftest -r devtool.DevtoolTests.test_devtool_add"

I can comment it out...

Cheers,

Richard





More information about the Openembedded-core mailing list