[cig-commits] r18434 - cs/buildbot/trunk/buildbot/scripts

brad at geodynamics.org brad at geodynamics.org
Mon May 23 08:09:37 PDT 2011


Author: brad
Date: 2011-05-23 08:09:36 -0700 (Mon, 23 May 2011)
New Revision: 18434

Modified:
   cs/buildbot/trunk/buildbot/scripts/packager.py
Log:
Updated packaging. Perform exclude on packing list and write packing list to file.

Modified: cs/buildbot/trunk/buildbot/scripts/packager.py
===================================================================
--- cs/buildbot/trunk/buildbot/scripts/packager.py	2011-05-23 14:37:38 UTC (rev 18433)
+++ cs/buildbot/trunk/buildbot/scripts/packager.py	2011-05-23 15:09:36 UTC (rev 18434)
@@ -16,12 +16,14 @@
             fullNames.append(os.path.join(dirpath, f))
     return fullNames
 
+
 def filterList(l, excludes):
     import re, functools, operator
 
     pats = [re.compile(ex) for ex in excludes]
     return [i for i in l if not functools.reduce(operator.or_, [bool(pat.match(i)) for pat in pats])]
 
+
 class PackingList(object):
     def __init__(self, config, opSys, python):
         
@@ -37,18 +39,18 @@
         self.programs = []
         for d in binDirs:
             self.programs.extend(walkDirTree(d))
+        filterList(self.programs, config.packaging.exlude)
 
         self.libraries = []
         for d in libDirs:
             self.libraries.extend(walkDirTree(d))
+        filterList(self.libraries, config.packaging.exlude)
             
-        if opSys == "darwin" or opSys == "linux":
-            self.misc = ["setup.sh"]
-        else:
-            self.misc = []
+        self.misc = []
         for d in miscDirs:
             self.misc.extend(walkDirTree(d))
-
+        filterList(self.misc, config.packaging.exlude)
+            
         # Scripts are application specific.
         self.scripts = []
         for s in config.packaging.scripts:
@@ -676,19 +678,14 @@
         os.system("rm " + distdir_arch)
         os.system("ln -s " + prefix + " " + distdir_arch)
 
-        # Can't list all files (length exceeds limits), so use directories
-        packingList = [distdir_arch + "/" + m for m in pl.directories]
-        packingList.extend([distdir_arch + "/" + m for m in pl.extraFiles])
+        # Write packing list to file
+        plfile = open("tar_list", "w")
+        plfile.write(distdir_arch + "/" + m for m in pl.files())
+        plfile.close()
 
-        # Create list of files to exclude
-        fexclude = open("tar_exclude", "w")
-        for f in config.packaging.exclude:
-            fexclude.write(f+"\n")
-        fexclude.close()
-
         archive = distdir_arch + ".tar.gz"
         taggedArchive = tag + "-" + archive
-        status = os.system("tar cvzf " + archive + " -X tar_exclude " + " ".join(packingList))
+        status = os.system("tar cvzf " + archive + " -T tar_list")
         if status != 0:
             sys.exit("tar: exit %d" % status)
 



More information about the CIG-COMMITS mailing list