| OLD | NEW | 
|---|
| 1 # This Source Code Form is subject to the terms of the Mozilla Public | 1 # This Source Code Form is subject to the terms of the Mozilla Public | 
| 2 # License, v. 2.0. If a copy of the MPL was not distributed with this | 2 # License, v. 2.0. If a copy of the MPL was not distributed with this | 
| 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 
| 4 | 4 | 
| 5 # Note: These are the base functions common to all packagers, the actual | 5 # Note: These are the base functions common to all packagers, the actual | 
| 6 # packagers are implemented in packagerGecko and packagerChrome. | 6 # packagers are implemented in packagerGecko and packagerChrome. | 
| 7 | 7 | 
| 8 import sys | 8 import sys | 
| 9 import os | 9 import os | 
| 10 import re | 10 import re | 
| 11 import codecs |  | 
| 12 import subprocess | 11 import subprocess | 
| 13 import json | 12 import json | 
| 14 import zipfile | 13 import zipfile | 
| 15 from StringIO import StringIO | 14 from StringIO import StringIO | 
| 16 from chainedconfigparser import ChainedConfigParser | 15 from chainedconfigparser import ChainedConfigParser | 
| 17 | 16 | 
| 18 import buildtools | 17 import buildtools | 
| 19 | 18 | 
| 20 | 19 | 
| 21 def getDefaultFileName(metadata, version, ext): | 20 def getDefaultFileName(metadata, version, ext): | 
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 63                 # version components. | 62                 # version components. | 
| 64                 while version.count('.') < 2: | 63                 while version.count('.') < 2: | 
| 65                     version += '.0' | 64                     version += '.0' | 
| 66             version += '.' + buildNum | 65             version += '.' + buildNum | 
| 67     return version | 66     return version | 
| 68 | 67 | 
| 69 | 68 | 
| 70 def getTemplate(template, autoEscape=False): | 69 def getTemplate(template, autoEscape=False): | 
| 71     import jinja2 | 70     import jinja2 | 
| 72 | 71 | 
| 73     templatePath = buildtools.__path__[0] | 72     template_path = os.path.join(buildtools.__path__[0], 'templates') | 
|  | 73     loader = jinja2.FileSystemLoader(template_path) | 
| 74     if autoEscape: | 74     if autoEscape: | 
| 75         env = jinja2.Environment(loader=jinja2.FileSystemLoader(templatePath), a
     utoescape=True) | 75         env = jinja2.Environment(loader=loader, autoescape=True) | 
| 76     else: | 76     else: | 
| 77         env = jinja2.Environment(loader=jinja2.FileSystemLoader(templatePath)) | 77         env = jinja2.Environment(loader=loader) | 
| 78     env.filters.update({'json': json.dumps}) | 78     env.filters.update({'json': json.dumps}) | 
| 79     return env.get_template(template) | 79     return env.get_template(template) | 
| 80 | 80 | 
| 81 | 81 | 
| 82 class Files(dict): | 82 class Files(dict): | 
| 83     def __init__(self, includedFiles, ignoredFiles, process=None): | 83     def __init__(self, includedFiles, ignoredFiles, process=None): | 
| 84         self.includedFiles = includedFiles | 84         self.includedFiles = includedFiles | 
| 85         self.ignoredFiles = ignoredFiles | 85         self.ignoredFiles = ignoredFiles | 
| 86         self.process = process | 86         self.process = process | 
| 87 | 87 | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 127 | 127 | 
| 128     def preprocess(self, filenames, params={}): | 128     def preprocess(self, filenames, params={}): | 
| 129         import jinja2 | 129         import jinja2 | 
| 130         env = jinja2.Environment() | 130         env = jinja2.Environment() | 
| 131 | 131 | 
| 132         for filename in filenames: | 132         for filename in filenames: | 
| 133             env.autoescape = os.path.splitext(filename)[1].lower() in ('.html', 
     '.xml') | 133             env.autoescape = os.path.splitext(filename)[1].lower() in ('.html', 
     '.xml') | 
| 134             template = env.from_string(self[filename].decode('utf-8')) | 134             template = env.from_string(self[filename].decode('utf-8')) | 
| 135             self[filename] = template.render(params).encode('utf-8') | 135             self[filename] = template.render(params).encode('utf-8') | 
| 136 | 136 | 
| 137     def zip(self, outFile, sortKey=None): | 137     def zip(self, outFile, sortKey=None, compress=True): | 
| 138         zip = zipfile.ZipFile(outFile, 'w', zipfile.ZIP_DEFLATED) | 138         compression = zipfile.ZIP_DEFLATED if compress else zipfile.ZIP_STORED | 
| 139         names = self.keys() | 139         zf = zipfile.ZipFile(outFile, 'w', compression) | 
| 140         names.sort(key=sortKey) | 140         for name in sorted(self, key=sortKey): | 
| 141         for name in names: | 141             zf.writestr(name, self[name]) | 
| 142             zip.writestr(name, self[name]) | 142         zf.close() | 
| 143         zip.close() |  | 
| 144 | 143 | 
| 145     def zipToString(self, sortKey=None): | 144     def zipToString(self, sortKey=None): | 
| 146         buffer = StringIO() | 145         buffer = StringIO() | 
| 147         self.zip(buffer, sortKey=sortKey) | 146         self.zip(buffer, sortKey=sortKey) | 
| 148         return buffer.getvalue() | 147         return buffer.getvalue() | 
| OLD | NEW | 
|---|