]> source.dussan.org Git - vaadin-framework.git/commitdiff
Merged [8980] from 6.1 to 6.2: List differences from latest release package.
authorMarko Grönroos <magi@iki.fi>
Tue, 29 Sep 2009 11:22:27 +0000 (11:22 +0000)
committerMarko Grönroos <magi@iki.fi>
Tue, 29 Sep 2009 11:22:27 +0000 (11:22 +0000)
svn changeset:8983/svn branch:6.2

build/bin/package-diff.py [new file with mode: 0755]
build/build.xml

diff --git a/build/bin/package-diff.py b/build/bin/package-diff.py
new file mode 100755 (executable)
index 0000000..74ca550
--- /dev/null
@@ -0,0 +1,114 @@
+#!/usr/bin/python
+
+import sys,os
+from sets import Set
+
+################################################################################
+# Configuration
+################################################################################
+downloadsite = "http://vaadin.com/download"
+latestfile   = "/LATEST"
+
+################################################################################
+# Utility Functions
+################################################################################
+def command(cmd, dryrun=0):
+       if not dryrun:
+               if os.system(cmd):
+                       print "Command '%s' failed, exiting." % (cmd)
+                       sys.exit(1)
+       else:
+               print "Dry run - not executing."
+
+################################################################################
+# List files in an archive.
+################################################################################
+def listfiles(archive):
+       pin = os.popen("tar ztf %s | sort" % (archive), "r")
+       files = map(lambda x: x.strip(), pin.readlines())
+       pin.close()
+
+       cleanedfiles = []
+       for file in files:
+               # Remove archive file name from the file names
+               slashpos = file.find("/")
+               if slashpos != -1:
+                       cleanedname = file[slashpos+1:]
+               else:
+                       cleanedname = file
+
+               # Purge GWT compilation files.
+               if cleanedname.find(".cache.html") != -1:
+                       continue
+               
+               cleanedfiles.append(cleanedname)
+
+       return cleanedfiles
+
+################################################################################
+# Difference of two lists of files
+################################################################################
+def diffFiles(a, b):
+       diff = Set(a).difference(Set(b))
+       difffiles = []
+       for item in diff:
+               difffiles.append(item)
+       difffiles.sort()
+       return difffiles
+
+################################################################################
+#
+################################################################################
+
+# Download the installation package of the latest version
+wgetcmd = "wget -q -O - %s" % (downloadsite+latestfile)
+pin = os.popen(wgetcmd, "r")
+latestdata = pin.readlines()
+pin.close()
+
+latestversion  = latestdata[0].strip()
+latestpath     = latestdata[1].strip()
+latestURL      = downloadsite + "/" + latestpath + "/"
+linuxfilename  = "vaadin-linux-%s.tar.gz" % (latestversion)
+linuxpackage   = latestURL + linuxfilename
+locallinuxpackage = "/tmp/%s" % (linuxfilename)
+
+print "Latest version:      %s" % (latestversion)
+print "Latest version path: %s" % (latestpath)
+print "Latest version URL:  %s" % (latestURL)
+
+# Check if it already exists
+try:
+       os.stat(locallinuxpackage)
+       print "Latest package already exists in %s" % (locallinuxpackage)
+       # File exists
+except OSError:
+       # File does not exist, get it.
+       print "Downloading Linux package %s to %s" % (linuxpackage, locallinuxpackage)
+       wgetcmd = "wget -q -O %s %s" % (locallinuxpackage, linuxpackage)
+       command (wgetcmd)
+
+# List files in latest version.
+latestfiles  = listfiles(locallinuxpackage)
+
+# List files in built version.
+builtversion = sys.argv[1]
+builtpackage = "build/result/vaadin-linux-%s.tar.gz" % (builtversion)
+builtfiles = listfiles(builtpackage)
+
+# Report differences
+
+# New files
+newfiles = diffFiles(builtfiles, latestfiles)
+print "\n%d new files:" % (len(newfiles))
+for item in newfiles:
+       print item
+
+# Removed files
+removed = diffFiles(latestfiles, builtfiles)
+print "\n%d removed files:" % (len(removed))
+for item in removed:
+       print item
+
+# Purge downloaded package
+command("rm %s" % (locallinuxpackage))
index b5163c2a5b785172e83ff3d6e3882a8b95b5e8b1..1367650884a8c658669edb82986bd2c54b594dc5 100644 (file)
        <!-- java2html converter -->
        <taskdef name="java2html" classname="de.java2html.anttasks.Java2HtmlTask" classpath="build/lib/java2html.jar" />
 
+    <!-- ================================================================== -->
+    <!-- Difference to previous release package.                            -->
+    <!-- ================================================================== -->
+
+       <target name="differences" depends="init, internal-package-linux">
+               <exec executable="python" searchpath="true" failonerror="true" output="${result-path}/differences-linux.txt">
+                       <arg value="build/bin/package-diff.py"/>
+                       <arg value="${version}"/>
+               </exec>
+        <echo>##teamcity[publishArtifacts '${result-path}/differences-linux.txt']</echo>
+       </target>
+
     <!-- ================================================================== -->
     <!-- Nightly build.                                                     -->
     <!-- ================================================================== -->