Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/tools/merge_manifests.py

Issue 295123002: Provide script/gypi support for manifest generation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More style. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
2
3 # Copyright 2014 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
6
7 import json
Peter Lundblad 2014/05/22 00:28:25 Care to provide a minimal docstring?
David Tseng 2014/05/22 02:42:04 Done.
8 import optparse
9 import sys
10
11 def MergeManifests(base, override, output):
12 ''' Takes two extension manifests and merges them into an output manifest.
Peter Lundblad 2014/05/22 00:28:25 Nit: space after '''
David Tseng 2014/05/22 02:42:04 Remove it? + ''' Takes two extension manifests an
13
14 Args:
15 base: path to a extension manifest.
16 override: path to a extension manifest.
17 output: path to the result of merging base and override.
18 '''
19 base_file = open(base)
20 override_file = open(override)
Peter Lundblad 2014/05/22 00:28:25 Consider using with to have these automatically cl
David Tseng 2014/05/22 02:42:04 Done. (Nice construct).
21 base_manifest = json.load(base_file)
22 override_manifest = json.load(override_file)
23 MergeDicts(base_manifest, override_manifest)
24 json.dump(base_manifest, open(output, 'w'), sort_keys=True, indent=2)
Peter Lundblad 2014/05/22 00:28:25 Can you put the open call out of line and close th
David Tseng 2014/05/22 02:42:04 Done.
25
26
27 def MergeDicts(base, override):
28 '''Merges override into base.
29
30 Args:
31 base: dictionary with base key values.
32 override: dictionary with key values to insert (and possibly overwrite) in
33 base.
34 '''
35 for key in override:
36 if type(override[key]) is dict:
37 MergeDicts(base, override[key])
Peter Lundblad 2014/05/22 00:28:25 Shouldn't you merge override into base[key], creat
David Tseng 2014/05/22 02:42:04 yYup; goofed on this case; also handle the case wh
38 else:
39 base[key] = override[key]
40
41
42 def main():
43 parser = optparse.OptionParser(description=__doc__)
44 parser.usage = ('%prog [options] <base_manifest_path>'
45 ' <override_manifest_path> <output_manifest_path>')
Peter Lundblad 2014/05/22 00:28:25 I recommend making the out file an -o option to be
46 _, args = parser.parse_args()
47 if len(args) != 3:
48 print >>sys.stderr, 'Expected exactly three arguments'
49 sys.exit(1)
50 MergeManifests(args[0], args[1], args[2])
51
52 if __name__ == '__main__':
53 main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698