buildframework/helium/tools/iad/packageiad.py
changeset 179 d8ac696cc51f
parent 1 be27ed110b50
--- a/buildframework/helium/tools/iad/packageiad.py	Wed Oct 28 14:39:48 2009 +0000
+++ b/buildframework/helium/tools/iad/packageiad.py	Wed Dec 23 19:29:07 2009 +0200
@@ -16,6 +16,9 @@
 #
 #Description:
 #===============================================================================
+
+""" packageIAD.py module """
+
 import os
 import sys
 import xml.dom.minidom
@@ -23,12 +26,17 @@
 import zipfile
 import encodings.utf_8
 
+
 class IADPackager :
-
-    def __init__ (self) :
+    """ package IAD class "
+    """
+    
+    def __init__(self) :
+        """ class init method """
         self.hasStub = False
 
-    def getBldDirs (self, layer, bldDirs) :
+    def getBldDirs(self, layer, bldDirs) :
+        """ get the list of build directories """
         units = layer.getElementsByTagName ("unit")
         for unit in units :
             dir = unit.getAttribute ("bldFile").rstrip ('\\/')
@@ -37,31 +45,33 @@
                 i = dir.rfind ("/")
             bldDirs.append (dir[:i + 1])
     
-    def getLayer (self, configuration, layers, bldDirs) :
+    def getLayer(self, configuration, layers, bldDirs) :
+        """ get each layer info """
         layerRef = configuration.getElementsByTagName ("layerRef")[0].getAttribute ("layerName")
         for layer in layers :
             if layer.getAttribute ("name") == layerRef :
                 self.getBldDirs (layer, bldDirs)
     
-    def createInfoFiles (self, sisInfo) :
+    def createInfoFiles(self, sisInfo) :
+        """ create the INfo files depends.xml etc."""
         depends = xml.dom.minidom.parse ("depends.xml")
         info = xml.dom.minidom.parseString (sisInfo)
         
         infoFile = file ("sisinfo.xml", "w")
-        platDeps = info.getElementsByTagName("platform_dependency")
         packageDeps = info.getElementsByTagName("package_dependency")
         for packageDep in packageDeps :
-            p = depends.createElement ("package")
-            depends.childNodes[1].appendChild (p)
+            pack = depends.createElement ("package")
+            depends.childNodes[1].appendChild (pack)
             for child in packageDep.childNodes :
-                p.appendChild (child)
+                pack.appendChild (child)
         infoFile.write (info.toxml ())
         infoFile.close()
         depFile = file ("depends.xml", "w")
         depFile.write (depends.toxml ())
         depFile.close()
     
-    def createSis (self, packageDir, packageName) :
+    def createSis(self, packageDir, packageName, makesis) :
+        """ create the .sis file """
         sisReader = iadinfo.IADHandler()
         os.chdir (packageDir)
         sisPackage = packageName + ".sis"
@@ -69,14 +79,15 @@
         print "Creating", sisPackage
         cmd = makesis + " package.pkg " + sisPackage
         os.system (cmd)
-        self.createInfoFiles (sisReader.getInfo (sisPackage))
+        self.createInfoFiles (sisReader.getInfo(sisPackage))
         if os.path.exists(stubPackage) :
             print "Creating stub SIS file", stubPackage
             self.hasStub = True
             cmd = makesis + " -s package.pkg " + stubPackage
             os.system (cmd)
         
-    def createPackage (self, topDir, packageName) :
+    def createPackage(self, topDir, packageName) :
+        """ create the Data Package """
         print "Creating package", packageName
         os.chdir (topDir)
         zipFile = packageName + ".zip"
@@ -93,27 +104,31 @@
         zip.close()
         
     
-    def processSisDir (self, sisDir) :
-        for root, dirs, files in os.walk (sisDir):
+    def processSisDir(self, sisDir, makesis) :
+        """ handle the directory used to create the .sis file """
+        for root, dirs, _ in os.walk (sisDir):
             for name in dirs :
-                self.createSis (os.path.join (root, name), name)
+                self.createSis (os.path.join (root, name), name, makesis)
                 self.createPackage (root, name)
 
-makesis = sys.argv[3] + "\\epoc32\\tools\\makesis.exe"
-signsis = sys.argv[3] + "\\epoc32\\tools\\signsis.exe"
-
-sysdef = xml.dom.minidom.parse (sys.argv[1])
-configurations = sysdef.getElementsByTagName ("configuration")
-layers = sysdef.getElementsByTagName ("layer")
-bldDirs = []
+def main(sysdefFile, sysdefconfigs, bldDrive):
+    """ main to called when imported """
+    makesis = bldDrive + "\\epoc32\\tools\\makesis.exe"
+    
+    sysdef = xml.dom.minidom.parse (sysdefFile)
+    configurations = sysdef.getElementsByTagName ("configuration")
+    layers = sysdef.getElementsByTagName ("layer")
+    bldDirs = []
+    
+    packager = IADPackager()
+    
+    for configuration in configurations :
+        if configuration.getAttribute ("name") == sysdefconfigs :
+            packager.getLayer (configuration, layers, bldDirs)
+     
+    
+    for bldDir in bldDirs :
+        packager.processSisDir (bldDrive + bldDir + "sis\\", makesis)
 
-packager = IADPackager()
-
-for configuration in configurations :
-    if configuration.getAttribute ("name") == sys.argv[2] :
-        packager.getLayer (configuration, layers, bldDirs)
- 
-
-for bldDir in bldDirs :
-    packager.processSisDir (sys.argv[3] + bldDir + "sis\\")
-
+if __name__ == "__main__":
+    main(sys.argv[1], sys.argv[2], sys.argv[3])