# Copyright 2018 The Fuchsia 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 os
import subprocess

out_file = open("resources.gni", "w")

out_file.write("""\
### NOTE: This file auto-generated from gen.py

  cts_resources = [
  {
    path=rebase_path("../external/vulkancts/mustpass/1.0.2/vk-default.txt")
    dest="vk-default.txt"
  },
""")

files = subprocess.check_output(["find", "../external/vulkancts/data/vulkan", "-type", "f"])
file_lines = files.splitlines()

for file in file_lines:
	file_split = file.split('/')
	file_split = file_split[4:]
	out_file.write('  {\n')
	out_file.write('    path=rebase_path("%s")\n' % file)
	out_file.write('    dest="%s"\n' % '/'.join(file_split))
	out_file.write('  },\n')

out_file.write('  ]\n')
out_file.close()
