]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
fetch2/local: Improve handling of wildcard matches
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 22 Nov 2012 21:40:18 +0000 (21:40 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 25 Nov 2012 21:34:46 +0000 (21:34 +0000)
Currently wildcard matches end up working by FILESDIR being defined
in the metadata to a default of "." in FILESPATH which is hacky at best.

This patch adds the behaviour into the fetcher so its at least slightly
more explicit.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/bb/fetch2/local.py

index 690532d63a5b04b0ee2ea26eb968fdd6e6d0d073..7ea2f3b2e4d43299636fee5834b557a381d7d8c8 100644 (file)
@@ -62,7 +62,12 @@ class Local(FetchMethod):
                 if filesdir:
                     logger.debug(2, "Searching for %s in path: %s" % (path, filesdir))
                     newpath = os.path.join(filesdir, path)
-            if not os.path.exists(newpath) and path.find("*") == -1:
+            if not newpath or not os.path.exists(newpath) and path.find("*") != -1:
+                # For expressions using '*', best we can do is take the first directory in FILESPATH that exists
+                newpath = bb.utils.which(filespath, ".")
+                logger.debug(2, "Searching for %s in path: %s" % (path, newpath))
+                return newpath
+            if not os.path.exists(newpath):
                 dldirfile = os.path.join(d.getVar("DL_DIR", True), path)
                 logger.debug(2, "Defaulting to %s for %s" % (dldirfile, path))
                 bb.utils.mkdirhier(os.path.dirname(dldirfile))