devtool: update-recipe: check output before treating it as a string

As of the move to Python 3 and the fixes we applied at that time,
bb.process.run() will return a byte array of length 0 rather than an
empty string if the output is empty. That may be a bug that we should
fix, but for now it's easiest to just check the result here before
treating it as a string. This fixes running "devtool update-recipe" or
"devtool finish" on a recipe which has no source tree, for example
initramfs-framework.

Fixes [YOCTO #10563].

(From OE-Core rev: 66bf6978fc807ecc422fb6b6328f68bc3406cf15)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2016-11-10 14:45:14 +13:00 committed by Richard Purdie
parent 47594d59ec
commit 0ffd92707b
1 changed files with 5 additions and 4 deletions

View File

@ -332,10 +332,11 @@ def _git_ls_tree(repodir, treeish='HEAD', recursive=False):
cmd.append('-r')
out, _ = bb.process.run(cmd, cwd=repodir)
ret = {}
for line in out.split('\0'):
if line:
split = line.split(None, 4)
ret[split[3]] = split[0:3]
if out:
for line in out.split('\0'):
if line:
split = line.split(None, 4)
ret[split[3]] = split[0:3]
return ret
def _git_exclude_path(srctree, path):