diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2014-04-08 15:03:10 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-04-08 18:05:26 +0100 |
commit | 327ed0bfceb993c914a7fe03f3cab2351b835de6 (patch) | |
tree | 6c8435332c2e9294c7959614ba35882d14656f69 /bitbake | |
parent | 991af87183719bc3920e4edef38d5c75ac6824df (diff) | |
download | ast2050-yocto-poky-327ed0bfceb993c914a7fe03f3cab2351b835de6.zip ast2050-yocto-poky-327ed0bfceb993c914a7fe03f3cab2351b835de6.tar.gz |
bitbake: fetch2: fix traceback when a wildcard matches a directory
If there is a directory matching a wildcard in SRC_URI when getting file
checksums, we should recurse into that instead of producing an error.
(Bitbake rev: ae87b7eb414e3d5eefd2effec7b30c22d2186b02)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index a9ab75e..5a03a0e 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py @@ -962,24 +962,32 @@ def get_file_checksums(filelist, pn): return None return checksum + def checksum_dir(pth): + # Handle directories recursively + dirchecksums = [] + for root, dirs, files in os.walk(pth): + for name in files: + fullpth = os.path.join(root, name) + checksum = checksum_file(fullpth) + if checksum: + dirchecksums.append((fullpth, checksum)) + return dirchecksums + checksums = [] for pth in filelist.split(): checksum = None if '*' in pth: # Handle globs for f in glob.glob(pth): - checksum = checksum_file(f) - if checksum: - checksums.append((f, checksum)) + if os.path.isdir(f): + checksums.extend(checksum_dir(f)) + else: + checksum = checksum_file(f) + if checksum: + checksums.append((f, checksum)) continue elif os.path.isdir(pth): - # Handle directories - for root, dirs, files in os.walk(pth): - for name in files: - fullpth = os.path.join(root, name) - checksum = checksum_file(fullpth) - if checksum: - checksums.append((fullpth, checksum)) + checksums.extend(checksum_dir(pth)) continue else: checksum = checksum_file(pth) |