Changeset 501

Show
Ignore:
Timestamp:
2007-07-09 10:30:46 (1 year ago)
Author:
MaierMan
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tools/make.py

    r387 r501  
    1919from os import path 
    2020from shutil import rmtree 
    21 from zipfile import ZipFile, ZIP_DEFLATED 
     21from zipfile import ZipFile, ZIP_DEFLATED, ZIP_STORED 
    2222from urlparse import urlparse 
    2323from xml.dom.minidom import parse as xml_open 
     
    3333locales_file = 'locales.tar.gz' 
    3434update_url = 'http://code.downthemall.net/nightly/update.rdf' 
     35 
     36release_id = '{DDC359D1-844A-42a7-9AA1-88A850A938A8}' 
    3537 
    3638xpi_file = 'downthemall%s.xpi' 
     
    6062            yield "nightlifying" 
    6163            self.nightlify(update_url) 
     64        if self.opts.release: 
     65            yield "releasifying" 
     66            self.releasify() 
    6267        if self.opts.nocomments: 
    6368            yield "stripping comments" 
    64             for x in self.stripcomments(): 
    65                 yield x 
     69            self.stripcomments() 
     70        if self.opts.release: 
     71            yield "jarring" 
     72            self.jar()                 
    6673        yield "creating the xpi" 
    6774        self.createXPI(xpi_file) 
     
    141148        rdf.unlink() 
    142149        f.close()        
     150 
     151    def releasify(self): 
     152        global release_id 
     153        rdf = xml_open('%s/install.rdf' % self.opts.exportTo) 
     154 
     155        'update the version' 
     156        node = rdf.getElementsByTagName('id')[0].childNodes[0] 
     157        node.data = release_id 
     158 
     159        'save' 
     160        f = open('export/install.rdf', 'w') 
     161        rdf.writexml(f) 
     162 
     163        'cleanup' 
     164        rdf.unlink() 
     165        f.close() 
     166 
     167        f = open('%s/chrome/content/common/verinfo.js' % self.opts.exportTo) 
     168        lines = f.readlines() 
     169        f.close() 
     170        f = open('%s/chrome/content/common/verinfo.js' % self.opts.exportTo, 'wb') 
     171        for l in lines: 
     172            if re.search('const DTA_ID', l): 
     173                l = "const DTA_ID = '%s';\n" % release_id 
     174            f.write(l) 
     175        f.close() 
     176    def jar(self): 
     177        f = open('%s/chrome.manifest' % self.opts.exportTo) 
     178        lines = f.readlines() 
     179        f.close() 
     180        f = open('%s/chrome.manifest' % self.opts.exportTo, 'wb') 
     181        for l in lines: 
     182            l = re.sub(r'(\s)chrome/', r'\1jar:chrome/dta.jar!/', l); 
     183            f.write(l) 
     184        f.close() 
     185 
     186        p = self.opts.exportTo +  "/chrome" 
     187        dc = dircache.listdir(p)[:] 
     188        dirs = () 
     189        for x in dc: 
     190            if x in ('icons'): 
     191                continue 
     192            f = p + "/" + x 
     193            if path.isdir(f): 
     194                dirs += f, 
     195        jar_file = ZipFile(p + "/dta.jar", 'w', ZIP_STORED) 
     196        for d in dirs: 
     197            for x in self.getfilelist(d): 
     198                jar_file.write(x, x[len(p) + 1:].encode('cp437')) 
     199            rmtree(d) 
     200        jar_file.close() 
     201 
    143202 
    144203    def getfilelist(self, p): 
     
    167226            p.write(c) 
    168227            p.close() 
    169             yield f + " stripped" 
    170228         
    171229    def createXPI(self, xpi_file): 
     
    180238        xpi_file = ZipFile(xpi_file % additional, 'w', ZIP_DEFLATED) 
    181239        for x in self.getfilelist(self.opts.exportTo): 
    182             xpi_file.write(x, x[len('export') + 1:].encode('cp437')) 
     240            xpi_file.write(x, x[len(self.opts.exportTo) + 1:].encode('cp437')) 
    183241        xpi_file.close() 
    184242 
     
    224282        action='store_true', 
    225283        default=False 
    226         )     
     284        ) 
     285    parser.add_option( 
     286        '--release', 
     287        dest='release', 
     288        help='is a release', 
     289        action='store_true', 
     290        default=False 
     291        )        
    227292    parser.add_option( 
    228293        '--nocomment',