def generate_versions_db()

in scripts/generatePortVersionsDb.py [0:0]


def generate_versions_db(revision):
    start_time = time.time()

    # Assume each directory in ${VCPKG_ROOT}/ports is a different port
    port_names = [item for item in os.listdir(
        PORTS_DIRECTORY) if os.path.isdir(os.path.join(PORTS_DIRECTORY, item))]
    total_count = len(port_names)

    concurrency = MAX_PROCESSES / 2
    print(f'Running {concurrency:.0f} parallel processes')
    process_pool = multiprocessing.Pool(MAX_PROCESSES)
    for i, _ in enumerate(process_pool.imap_unordered(generate_versions_file, port_names), 1):
        sys.stderr.write(
            f'\rProcessed: {i}/{total_count} ({(i / total_count):.2%})')
    process_pool.close()
    process_pool.join()

    # Generate timestamp
    rev_file = os.path.join(VERSIONS_DB_DIRECTORY, revision)
    Path(rev_file).touch()

    elapsed_time = time.time() - start_time
    print(
        f'\nElapsed time: {elapsed_time:.2f} seconds')