summaryrefslogtreecommitdiffstats
path: root/build/bin/package-diff.py
diff options
context:
space:
mode:
authorMarko Grönroos <magi@iki.fi>2009-09-29 11:22:27 +0000
committerMarko Grönroos <magi@iki.fi>2009-09-29 11:22:27 +0000
commit06e1e7a770e53e41a4164a22d381a0b5b03ce2f2 (patch)
tree302297b34eb8550e0c9d2cc420a27cd9c233703e /build/bin/package-diff.py
parentf687d32f43351b805fcb33c4573ff1b6f23e22cd (diff)
downloadvaadin-framework-06e1e7a770e53e41a4164a22d381a0b5b03ce2f2.tar.gz
vaadin-framework-06e1e7a770e53e41a4164a22d381a0b5b03ce2f2.zip
Merged [8980] from 6.1 to 6.2: List differences from latest release package.
svn changeset:8983/svn branch:6.2
Diffstat (limited to 'build/bin/package-diff.py')
-rwxr-xr-xbuild/bin/package-diff.py114
1 files changed, 114 insertions, 0 deletions
diff --git a/build/bin/package-diff.py b/build/bin/package-diff.py
new file mode 100755
index 0000000000..74ca550aa0
--- /dev/null
+++ b/build/bin/package-diff.py
@@ -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))