1# Copyright 2015 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import os
6import sys
7
8arches = ['i386', 'x86-64']
9
10goldens = {}
11
12for fn in sys.argv[2:]:
13  dir, name = fn.split('/')[-2:]
14  name = name.rstrip('.txt')
15  golden = goldens.setdefault(name, [None] * len(arches))
16  idx = arches.index(dir)
17  golden[idx] = open(fn).read()
18
19with open(sys.argv[1], 'w') as f:
20  f.write("""// Generated by sandbox/linux/bpf_dsl/golden/generate.py
21
22#ifndef SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_
23#define SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_
24
25namespace sandbox {
26namespace bpf_dsl {
27namespace golden {
28
29struct Golden {
30  const char* i386_dump;
31  const char* x86_64_dump;
32};
33
34""")
35
36  for name, datas in sorted(goldens.items()):
37    f.write("const Golden k%s = {\n" % name)
38    for data in datas:
39      if data is None:
40        f.write("  nullptr,\n")
41      else:
42        f.write("  \"%s\",\n" % data.replace("\n", "\\n\\\n"))
43    f.write("};\n\n")
44
45  f.write("""\
46}  // namespace golden
47}  // namespace bpf_dsl
48}  // namespace sandbox
49
50#endif  // SANDBOX_LINUX_BPF_DSL_GOLDEN_GOLDEN_FILES_H_
51""")
52