def main()

in scripts/icon-builder.py [0:0]


def main():

    if args["create_config_template"]:
        create_config_template()

    verify_environment()

    # clear out dist/ directory
    clean_dist()

    # Copy source/*.puml files to dist/
    copy_puml()

    # Build icons from files
    icons = []
    for dir in dir_list:
        for filename in build_file_list(dir["dir"], dir["dir_glob"]):
            icons.append(
                Icon(
                    posix_filename=filename,
                    config=config,
                    category_regex=dir["category_regex"],
                    filename_regex=dir["filename_regex"],
                    category_mappings=dir["category_mappings"],
                    filename_mappings=dir["filename_mappings"],
                )
            )

    for icon in icons:
        if icon.category == "Uncategorized":
            print(icon.source_name)

    # Create category directories
    categories = sorted(set([icon.category for icon in icons]))
    for i in categories:
        Path(f"../dist/{i}").mkdir(exist_ok=True)

    # Create PlantUML sprites
    pool = Pool(processes=multiprocessing.cpu_count())
    for i in icons:
        pool.apply_async(worker, args=(i,))
    pool.close()
    pool.join()

    # Generate "all.puml" files for each category
    for i in categories:
        create_category_all_file(Path(f"../dist/{i}"))

    # Create markdown sheet and place in dist
    sorted_icons = sorted(icons, key=lambda x: (x.category, x.target))
    markdown = MARKDOWN_PREFIX_TEMPLATE
    for i in categories:
        category = i
        markdown += f"**{category}** | | | **{category}/all.puml**\n"
        for j in sorted_icons:
            if j.category == i:
                cat = j.category
                tgt = j.target
                markdown += (
                    f"{cat} | {tgt}  | ![{tgt}](dist/{cat}/{tgt}.png?raw=true) |"
                    f"{cat}/{tgt}.puml\n"
                )
    with open(Path("../AWSSymbols.md"), "w") as f:
        f.write(markdown)