Index: chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py |
diff --git a/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py b/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py |
index 69c6bc18b135a84dd5fe3ef0a0a85d093cc6f035..c3a2a4c070d6ce75ecae5f95e59e43b8e3354569 100755 |
--- a/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py |
+++ b/chrome/browser/resources/chromeos/chromevox/tools/generate_manifest.py |
@@ -11,17 +11,25 @@ import os |
import sys |
jinja2_path = os.path.normpath(os.path.join(os.path.abspath(__file__), |
- *[os.path.pardir] * 7 + ['third_party'])) |
+ *[os.path.pardir] * 7 + ['third_party'])) |
nom_path = os.path.normpath(os.path.join(os.path.abspath(__file__), |
*[os.path.pardir] * 7 + ['tools/json_comment_eater'])) |
+version_py_path = os.path.normpath(os.path.join(os.path.abspath(__file__), |
+ *[os.path.pardir] * 7 + ['build/util'])) |
sys.path.insert(0, jinja2_path) |
sys.path.insert(0, nom_path) |
+sys.path.insert(0, version_py_path) |
import jinja2 |
from json_comment_eater import Nom |
+import version |
'''Generate an extension manifest based on a template.''' |
+def getChromeVersion(version_file): |
+ values = version.fetch_values([version_file]) |
+ return version.subst_template('@MAJOR@.@MINOR@.@BUILD@.@PATCH@', values) |
+ |
def processJinjaTemplate(input_file, output_file, context): |
(template_path, template_name) = os.path.split(input_file) |
@@ -57,6 +65,9 @@ def main(): |
parser.add_option( |
'--key', action='store', metavar='KEY', |
help='Set the extension key') |
+ parser.add_option( |
+ '--version_file', action='store', metavar='NAME', |
+ help='File with version information') |
options, args = parser.parse_args() |
if len(args) != 1: |
@@ -65,11 +76,16 @@ def main(): |
if options.output_manifest is None: |
print >>sys.stderr, '--output_manifest option must be specified' |
sys.exit(1) |
- if options.set_version is None: |
- print >>sys.stderr, '--set_version option must be specified' |
+ if options.set_version is not None and options.version_file is not None: |
+ print >>sys.stderr, ('only one of --set_version and --version_file may ' + |
+ 'be specified') |
+ if options.set_version is None and options.version_file is None: |
+ print >>sys.stderr, ('one of --set_version or --version_file option ' + |
+ 'must be specified') |
sys.exit(1) |
- |
context = {k: v for k, v in parser.values.__dict__.items() if v is not None} |
+ if options.version_file is not None: |
+ context['set_version'] = getChromeVersion(options.version_file) |
processJinjaTemplate(args[0], options.output_manifest, context) |
if __name__ == '__main__': |