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..57ab26850ee8294d5aacf72799b5dc9463fb52a4 |
--- /dev/null |
+++ b/headless/lib/embed_data.py |
@@ -0,0 +1,96 @@ |
+# Copyright 2017 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 2017 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) |
+ |