import os
import os.path
import sys


keyword = "include/"

def getFiles(path):
    files = os.listdir(path)
    return list(filter(lambda x: x[0] != '.', files))

def gen_all_file_strings(path, files, headers, output):
    for file in files:
        package = file[:file.find("_")]
        f = open(path + file)
        for line in f:
            idx = line.strip().find(keyword)
            if idx >= 0 and line.strip()[-1] != "/":
                headers.write(package + ":" + line[idx + len(keyword):])
                output.write(package + ":" + line[idx-1:])
            elif line.strip()[-1] != "/":
                output.write(package + ":" + line[line.find("/"):])
        f.close()

def main(path):
    try:
        os.mkdir("scripts/list_files")
    except FileExistsError:
        print("Path already exists, continuing...")

    try:
        headers = open("scripts/list_files/VCPKGHeadersDatabase.txt", mode='w')
        output = open("scripts/list_files/VCPKGDatabase.txt", mode='w')
        gen_all_file_strings(path, getFiles(path), headers, output)
        headers.close()
        output.close()
    except e:
        print("Failed to generate file lists")

if __name__ == "__main__":
    main(sys.argv[1])

