]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
utils.py: Move prunedir function to utils.py and add explode_dep_versions function
authorRichard Purdie <rpurdie@linux.intel.com>
Tue, 30 Sep 2008 20:01:46 +0000 (20:01 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 30 Sep 2008 20:01:46 +0000 (20:01 +0000)
ChangeLog
lib/bb/fetch/git.py
lib/bb/utils.py

index 2ad0f713ff65cd2749475d9321907961f00db6d2..fc77cbf31de636ab0bbf298e8277c0f6ded88e4c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -143,6 +143,7 @@ Changes in Bitbake 1.9.x:
        - Revert the '-' character fix in class names since it breaks things
        - When a regexp fails to compile for PACKAGES_DYNAMIC, print a more useful error (#4444)
        - Allow to checkout CVS by Date and Time. Just add HHmm to the SRCDATE.
+       - Move prunedir function to utils.py and add explode_dep_versions function
 
 Changes in Bitbake 1.8.0:
        - Release 1.7.x as a stable series
index f4ae724f87865bf1479f0e606a4ba140077101fa..aa26a500c7e38c125d8a0025ce6dbfd67de3b111 100644 (file)
@@ -27,15 +27,6 @@ from   bb.fetch import Fetch
 from   bb.fetch import FetchError
 from   bb.fetch import runfetchcmd
 
-def prunedir(topdir):
-    # Delete everything reachable from the directory named in 'topdir'.
-    # CAUTION:  This is dangerous!
-    for root, dirs, files in os.walk(topdir, topdown=False):
-        for name in files:
-            os.remove(os.path.join(root, name))
-        for name in dirs:
-            os.rmdir(os.path.join(root, name))
-
 class Git(Fetch):
     """Class to fetch a module or modules from git repositories"""
     def supports(self, url, ud, d):
@@ -107,7 +98,7 @@ class Git(Fetch):
             runfetchcmd("tar -czf %s %s" % (repofile, os.path.join(".", ".git", "*") ), d)
 
         if os.path.exists(codir):
-            prunedir(codir)
+            bb.utils.prunedir(codir)
 
         bb.mkdirhier(codir)
         os.chdir(repodir)
@@ -119,7 +110,7 @@ class Git(Fetch):
         runfetchcmd("tar -czf %s %s" % (ud.localpath, os.path.join(".", "*") ), d)
 
         os.chdir(repodir)
-        prunedir(codir)
+        bb.utils.prunedir(codir)
 
     def suppports_srcrev(self):
         return True
index 17e22e389e64a0b34f3b9cadb06cbf7c34b71f8a..0a0c9ada34b53ac6580177de77d69dba65e42f97 100644 (file)
@@ -96,7 +96,34 @@ def explode_deps(s):
             #r[-1] += ' ' + ' '.join(j)
     return r
 
+def explode_dep_versions(s):
+    """
+    Take an RDEPENDS style string of format:
+    "DEPEND1 (optional version) DEPEND2 (optional version) ..."
+    and return a dictonary of dependencies and versions.
+    """
+    r = {}
+    l = s.split()
+    lastdep = None
+    lastver = ""
+    inversion = False
+    for i in l:
+        if i[0] == '(':
+            inversion = True
+            lastver = i[1:] or ""
+            #j = []
+        elif inversion and i.endswith(')'):
+            inversion = False
+            lastver = lastver + " " + (i[:-1] or "")
+            r[lastdep] = lastver
+        elif not inversion:
+            r[i] = None
+            lastdep = i
+            lastver = ""
+        elif inversion:
+            lastver = lastver + " " + i
 
+    return r
 
 def _print_trace(body, line):
     """
@@ -268,3 +295,13 @@ def sha256_file(filename):
     for line in open(filename):
         s.update(line)
     return s.hexdigest()
+
+def prunedir(topdir):
+    # Delete everything reachable from the directory named in 'topdir'.
+    # CAUTION:  This is dangerous!
+    for root, dirs, files in os.walk(topdir, topdown=False):
+        for name in files:
+            os.remove(os.path.join(root, name))
+        for name in dirs:
+            os.rmdir(os.path.join(root, name))
+    os.rmdir(topdir)