import os
import shutil
from pathlib import Path

import yaml


def _main():
    dirs = [
        'AI-大数据',
        '产品-运营',
        '前端-移动',
        '后端-架构',
        '管理-成长',
        '计算机基础',
        '运维-测试',
    ]
    all = []
    docs_dir = Path(__file__).parent.joinpath('dist')
    for dir in dirs:
        navs = [f"{dir}/index.md"]
        index_text = ''
        for sub_dir in sorted(os.listdir(dir)):
            item_dir = os.path.join(dir, sub_dir)
            item_mkdocs = os.path.join(item_dir, 'mkdocs.yml')
            if os.path.isfile(item_mkdocs):
                items = []
                with open(item_mkdocs, 'r') as f:
                    data = yaml.safe_load(f)
                    for nav in data['nav']:
                        nav_path = os.path.join(item_dir, nav)
                        real_nav_path = os.path.join(docs_dir, nav_path)
                        src_nav_path = os.path.join(item_dir, "docs", nav)
                        os.makedirs(os.path.dirname(real_nav_path), exist_ok=True)
                        shutil.copyfile(src_nav_path, real_nav_path)
                        items.append(nav_path)
                    index_text += f'\n[{os.path.basename(item_dir)}]({os.path.basename(item_dir)}/{os.path.basename(item_dir)})\n'
                navs.append({sub_dir: items})

        tag_index = os.path.join(docs_dir, dir, 'index.md')
        with open(tag_index, 'w') as wr:
            wr.write(index_text)

        all.append({dir: navs})

    with open('mkdocs.yml', 'w', encoding='utf-8') as w:
        with open("mkdocs_template.yml", 'r', encoding='utf-8') as f:
            data = yaml.safe_load(f)
            data.update({'nav': all})
            w.write(yaml.safe_dump(data, allow_unicode=True))

    shutil.copyfile('README.md', os.path.join(docs_dir, 'index.md'))


if __name__ == '__main__':
    _main()