aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorDaniel Molkentin <daniel.molkentin@nokia.com>2011-12-21 19:16:36 +0100
committerBill King <bill.king@nokia.com>2011-12-27 13:20:48 +0100
commitfd1062be8acbb09ca60dd0d87e657d9417d9b4d7 (patch)
tree16f539c7b3adc280a63df231d292b566698a2f1e /scripts
parent29223bc11793b58b0625c0a5ca5b361921a9247a (diff)
Add script that can check builds for completeness.
It checks against os-dependent lists which will be submitted in follow-up commits. Change-Id: Ieb40b19dbd85c30b28062b46320a6ee60ba672af Reviewed-by: Bill King <bill.king@nokia.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/checkInstalledFiles.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/scripts/checkInstalledFiles.py b/scripts/checkInstalledFiles.py
new file mode 100755
index 0000000000..249582a8b4
--- /dev/null
+++ b/scripts/checkInstalledFiles.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+import os
+import sys
+import stat
+import difflib
+import inspect
+import getopt
+
+def referenceFile():
+ if sys.platform.startswith('linux'):
+ filename = 'makeinstall.linux'
+ elif sys.platform.startswith('win'):
+ filename = 'makeinstall.windows'
+ elif sys.platform == 'darwin':
+ filename = 'makeinstall.darwin'
+ else:
+ print "Unsupported platform: ", sys.platform
+ sys.exit(-1)
+ scriptDir = os.path.dirname(inspect.getfile(inspect.currentframe()))
+ return scriptDir+'/../tests/reference/'+filename
+
+def readReferenceFile():
+ # read file with old diff
+ f = open(referenceFile(), 'r');
+ filelist = []
+ for line in f:
+ filelist.append(line)
+ f.close()
+ return filelist
+
+def generateReference(rootdir):
+ fileDict = {}
+ for root, subFolders, files in os.walk(rootdir):
+ for file in (subFolders + files):
+ f = os.path.join(root,file)
+ perm = os.stat(f).st_mode & 0777
+ if os.path.getsize(f) == 0:
+ print "'%s' is empty!" % f
+ fileDict[f[len(rootdir)+1:]] = perm
+
+ # generate new list
+ formattedlist = []
+ for name, perm in sorted(fileDict.iteritems()):
+ formattedlist.append("%o %s\n"% (perm, name))
+ return formattedlist;
+
+def usage():
+ print "Usage: %s [-g | --generate] <dir>" % os.path.basename(sys.argv[0])
+
+def main():
+ generateMode = False
+ try:
+ opts, args = getopt.gnu_getopt(sys.argv[1:], 'hg', ['help', 'generate'])
+ except:
+ print str(err)
+ usage()
+ sys.exit(2)
+ for o, a in opts:
+ if o in ('-h', '--help'):
+ usage()
+ sys.exit(0)
+ if o in ('-g', '--generate'):
+ generateMode = True
+
+ if len(args) != 1:
+ usage()
+ sys.exit(2)
+
+ rootdir = args[0]
+
+ if generateMode:
+ f = open(referenceFile(), 'w')
+ for item in generateReference(rootdir):
+ f.write(item)
+ f.close()
+ print "Do not forget to commit", referenceFile()
+ else:
+ hasDiff = False
+ for line in difflib.context_diff(readReferenceFile(), generateReference(rootdir), fromfile=referenceFile(), tofile="generated"):
+ sys.stdout.write(line)
+ hasDiff = True
+ if hasDiff:
+ sys.exit(1)
+
+if __name__ == "__main__":
+ main()