#!/usr/bin/env python

import sys
import os
from mrtutils.modsync import *
import argparse
import tempfile

from kconfiglib import Kconfig, \
                       Symbol, MENU, COMMENT, \
                       BOOL, TRISTATE, STRING, INT, HEX, UNKNOWN, \
                       expr_value, \
                       TRI_TO_STR

from menuconfig import menuconfig

localRepo = None #Repo(os.getcwd())


args = None
parser = None

# Initialize the argument parser
def init_args():
    global parser
    parser = argparse.ArgumentParser("Tool to document MrT modules")
    parser.add_argument('localRoot', type=str, nargs='?', help='Local Root of MrT modules', default=".")
    parser.add_argument('-d', '--doc', type=str, help='path to store doc index', default="")


def main():
    global localRepo

    info={}
    init_args()
    args= parser.parse_args()
    indexText = "Modules\n"
    indexText+= "=======\n"
    indexText+= ".. toctree::\n"
    indexText+= "\t:hidden:\n"
    indexText+= "\n"


    #check for git repo
    if not os.path.exists(".git"):
        print("This is not a  valid git repo")
        exit(0)

    localRepo = Repo(os.getcwd())
    localRepo.setRelativePath("./")
    localRepo.getSubModules()



    with open( localRepo.relativePath + 'mrt.yml', 'w') as file:
        info = localRepo.gatherModuleYamls()
        doc = yaml.dump(info, file)

    if not args.doc == '':
        for key, value in info.items():
            if 'doc' in value: 
                f = open(args.doc + "/modules/" + value['name'] + ".rst", 'w')
                f.write('.. include:: ../' + value['doc'])
                f.close()
                indexText+= '\t modules/'+value['name'] +'\n'

        f = open(args.doc + "/modules/index.rst",'w')
        f.write(indexText)
        f.close()
                



        

if __name__ == "__main__":
    main()