#!/usr/bin/python # Copyright (c) 2008 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """A simple utility function to merge data pack files into a single data pack. See base/pack_file* for details about the file format. """ import exceptions import struct import sys import data_pack def RePack(output_file, input_files): """Write a new data pack to |output_file| based on a list of filenames (|input_files|)""" resources = {} for filename in input_files: new_resources = data_pack.ReadDataPack(filename) # Make sure we have no dups. duplicate_keys = set(new_resources.keys()) & set(resources.keys()) if len(duplicate_keys) != 0: raise exceptions.KeyError("Duplicate keys: " + str(list(duplicate_keys))) resources.update(new_resources) data_pack.WriteDataPack(resources, output_file) def main(argv): if len(argv) < 3: print ("Usage:\n %s [input_file2] ... " % argv[0]) sys.exit(-1) RePack(argv[1], argv[2:]) if '__main__' == __name__: main(sys.argv)