diff options
author | Daniel Molkentin <daniel.molkentin@nokia.com> | 2011-12-21 19:16:36 +0100 |
---|---|---|
committer | Bill King <bill.king@nokia.com> | 2011-12-27 13:20:48 +0100 |
commit | fd1062be8acbb09ca60dd0d87e657d9417d9b4d7 (patch) | |
tree | 16f539c7b3adc280a63df231d292b566698a2f1e /scripts | |
parent | 29223bc11793b58b0625c0a5ca5b361921a9247a (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-x | scripts/checkInstalledFiles.py | 86 |
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() |