| Index: headless/lib/embed_data.py
|
| diff --git a/headless/lib/embed_data.py b/headless/lib/embed_data.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..6e231dd409866c4bb96510195685214f8c979a1d
|
| --- /dev/null
|
| +++ b/headless/lib/embed_data.py
|
| @@ -0,0 +1,96 @@
|
| +# Copyright 2016 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.
|
| +
|
| +import argparse
|
| +import sys
|
| +import os
|
| +
|
| +COPYRIGHT="""// Copyright 2016 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.
|
| +"""
|
| +
|
| +HEADER="""{copyright}
|
| +
|
| +#include "headless/lib/util/embedded_file.h"
|
| +
|
| +namespace {namespace} {{
|
| +
|
| +extern const headless::util::EmbeddedFile {variable_name};
|
| +
|
| +}} // namespace {namespace}
|
| +"""
|
| +
|
| +SOURCE="""{copyright}
|
| +
|
| +#include "{header_file}"
|
| +
|
| +namespace {{
|
| +
|
| +const uint8_t contents[] = {contents};
|
| +
|
| +}} // anonymous namespace
|
| +
|
| +namespace {namespace} {{
|
| +
|
| +const headless::util::EmbeddedFile {variable_name} = {{ {length}, contents }};
|
| +
|
| +}} // namespace {namespace}
|
| +"""
|
| +
|
| +def ParseArguments(args):
|
| + cmdline_parser = argparse.ArgumentParser()
|
| + cmdline_parser.add_argument('--data_file', required=True)
|
| + cmdline_parser.add_argument('--gendir', required=True)
|
| + cmdline_parser.add_argument('--header_file', required=True)
|
| + cmdline_parser.add_argument('--source_file', required=True)
|
| + cmdline_parser.add_argument('--namespace', required=True)
|
| + cmdline_parser.add_argument('--variable_name', required=True)
|
| +
|
| + return cmdline_parser.parse_args(args)
|
| +
|
| +
|
| +def GenerateArray(filepath):
|
| + with open(filepath, 'rb') as f:
|
| + contents = f.read()
|
| +
|
| + contents = [ str(ord(char)) for char in contents ]
|
| +
|
| + return len(contents), '{' + ','.join(contents) + '}'
|
| +
|
| +
|
| +def GenerateHeader(args):
|
| + return HEADER.format(
|
| + copyright=COPYRIGHT,
|
| + namespace=args.namespace,
|
| + variable_name=args.variable_name)
|
| +
|
| +def GenerateSource(args):
|
| + length, contents = GenerateArray(args.data_file)
|
| +
|
| + return SOURCE.format(
|
| + copyright=COPYRIGHT,
|
| + header_file=args.header_file,
|
| + namespace=args.namespace,
|
| + length=length,
|
| + contents=contents,
|
| + variable_name=args.variable_name)
|
| +
|
| +
|
| +def WriteHeader(args):
|
| + with open(os.path.join(args.gendir, args.header_file), 'w') as f:
|
| + f.write(GenerateHeader(args))
|
| +
|
| +
|
| +def WriteSource(args):
|
| + with open(os.path.join(args.gendir, args.source_file), 'w') as f:
|
| + f.write(GenerateSource(args))
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + args = ParseArguments(sys.argv[1:])
|
| +
|
| + WriteHeader(args)
|
| + WriteSource(args)
|
| +
|
|
|