cvs.py: Add norecurse and fullpath options to cvs fetcher (from Poky/Marcin)
authorRichard Purdie <rpurdie@linux.intel.com>
Sun, 20 Jan 2008 12:07:40 +0000 (12:07 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Sun, 20 Jan 2008 12:07:40 +0000 (12:07 +0000)
ChangeLog
lib/bb/fetch/cvs.py

index 080f33f..8f25147 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -40,6 +40,7 @@ Changes in BitBake 1.8.x:
        - Add git branch support
        - Add support for branches in git fetcher (Otavio Salvador, Michael Lauer)
        - Make taskdata and runqueue errors more user friendly
+       - Add norecurse and fullpath options to cvs fetcher
 
 Changes in Bitbake 1.8.8:
        - Rewrite svn fetcher to make adding extra operations easier 
index bd33171..70869d2 100644 (file)
@@ -58,7 +58,15 @@ class Cvs(Fetch):
         elif ud.tag:
             ud.date = ""
 
-        ud.localfile = data.expand('%s_%s_%s_%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.tag, ud.date), d)
+        norecurse = ''
+        if 'norecurse' in ud.parm:
+            norecurse = '_norecurse'
+
+        fullpath = ''
+        if 'fullpath' in ud.parm:
+            fullpath = '_fullpath'
+
+        ud.localfile = data.expand('%s_%s_%s_%s%s%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.tag, ud.date, norecurse, fullpath), d)
 
         return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
 
@@ -100,6 +108,8 @@ class Cvs(Fetch):
             cvsroot += "@" + ud.host + ":" + cvs_port + ud.path
 
         options = []
+        if 'norecurse' in ud.parm:
+            options.append("-l")
         if ud.date:
             options.append("-D %s" % ud.date)
         if ud.tag:
@@ -144,10 +154,15 @@ class Cvs(Fetch):
                  pass
             raise FetchError(ud.module)
 
-        os.chdir(moddir)
-        os.chdir('..')
         # tar them up to a defined filename
-        myret = os.system("tar -czf %s %s" % (ud.localpath, os.path.basename(moddir)))
+        if 'fullpath' in ud.parm:
+            os.chdir(pkgdir)
+            myret = os.system("tar -czf %s %s" % (ud.localpath, localdir))
+        else:
+            os.chdir(moddir)
+            os.chdir('..')
+            myret = os.system("tar -czf %s %s" % (ud.localpath, os.path.basename(moddir)))
+
         if myret != 0:
             try:
                 os.unlink(ud.localpath)