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..02e7057806510b36a4f68307ed3d151730d2a0c7 |
--- /dev/null |
+++ b/headless/lib/embed_data.py |
@@ -0,0 +1,81 @@ |
+# 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 |
+ |
+HEADER="""#include "headless/lib/util/embedded_file.h" |
Sami
2016/05/16 10:00:20
Could you add include guards and a copyright heade
altimin
2016/05/16 14:32:50
Done.
|
+ |
+namespace {namespace} {{ |
+ |
+extern const headless::util::EmbeddedFile {variable_name}; |
+ |
+}} // namespace {namespace} |
+""" |
+ |
+SOURCE="""#include "{header_file}" |
Sami
2016/05/16 10:00:20
Copyright header here too please.
altimin
2016/05/16 14:32:50
Done.
|
+ |
+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) + "}" |
Sami
2016/05/16 10:00:20
Single quotes instead of double please.
altimin
2016/05/16 14:32:50
Done.
|
+ |
+def GenerateHeader(args): |
Sami
2016/05/16 10:00:20
Two blank lines between top-level entries (here an
altimin
2016/05/16 14:32:50
Done.
|
+ return HEADER.format( |
+ namespace=args.namespace, |
+ variable_name=args.variable_name) |
+ |
+def GenerateSource(args): |
+ length, contents = GenerateArray(args.data_file) |
+ |
+ return SOURCE.format( |
+ 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) |
+ |