build/buildutils/checkdistpolicyfiles.py
branchRCL_3
changeset 19 04becd199f91
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/buildutils/checkdistpolicyfiles.py	Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,83 @@
+#!/usr/bin/python
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#   Searches all the distribution.file.s60 files recursively starting from 
+#   a directory given as parameter, reports about missing files, generates
+#   usage report per distribution policy ID and generates a summary.
+
+import os, sys
+
+def main():
+
+    missingList = []    # List containing directories without policy file
+    idLists = {}        # Set containing lists of directories for each distribution policy ID
+
+    findFiles(sys.argv[1], missingList, idLists)
+    
+    missingList.sort();
+    
+    for id in idLists:
+        idLists[id].sort
+    
+    ids = idLists.keys()
+    ids.sort()
+    
+    print "Analysis started from directory: " + sys.argv[1]
+    print ""
+    
+    print "Directories without distribution policy file:"
+    for dir in missingList:
+        print "    " + dir
+    print ""
+    
+    for id in ids:
+        print "Directories with distribution policy ID " + id + ":"
+        list = idLists[id]
+        for dir in list:
+            print "    " + dir
+        print ""
+        
+    
+# Go through the directories recursively
+#   If some directory doesn't contain policy file, add that directory to the list of "directories without policy file"
+#   Else read the policy ID from the file and add the directory to the list corresponding to the found ID
+
+
+def findFiles(startDir, missingList, idLists):
+
+    def visitFun(arg, dirname, names):
+        try:
+            f = open(dirname + "\\distribution.policy.s60")
+            id = f.readline()
+            if id[len(id)-1] == '\n':
+                id = id[0:len(id)-1]
+            f.close()
+            
+            idList = idLists.get(id);
+            if idList == None:
+                idLists[id] = [ dirname ]
+            else:
+                idList.append(dirname)
+                
+        except IOError:
+            # file was not found
+            missingList.append(dirname)            
+            
+            
+    os.path.walk(startDir, visitFun, None)
+
+
+if __name__ == "__main__":
+    main()