Change the separator of the keyboard overlay data to allow labels containing spaces.
[chromium-blink-merge.git] / tools / data_pack / repack.py
blob21f568d11f0e842b4756fbad0801682047d173e3
1 #!/usr/bin/python
2 # Copyright (c) 2008 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 """A simple utility function to merge data pack files into a single data pack.
7 See base/pack_file* for details about the file format.
8 """
10 import exceptions
11 import struct
12 import sys
14 import data_pack
16 def RePack(output_file, input_files):
17 """Write a new data pack to |output_file| based on a list of filenames
18 (|input_files|)"""
19 resources = {}
20 for filename in input_files:
21 new_resources = data_pack.ReadDataPack(filename)
23 # Make sure we have no dups.
24 duplicate_keys = set(new_resources.keys()) & set(resources.keys())
25 if len(duplicate_keys) != 0:
26 raise exceptions.KeyError("Duplicate keys: " + str(list(duplicate_keys)))
28 resources.update(new_resources)
30 data_pack.WriteDataPack(resources, output_file)
32 def main(argv):
33 if len(argv) < 3:
34 print ("Usage:\n %s <output_filename> <input_file1> [input_file2] ... " %
35 argv[0])
36 sys.exit(-1)
37 RePack(argv[1], argv[2:])
39 if '__main__' == __name__:
40 main(sys.argv)