import os
import sys
import glob

sys.path.append("c:/Programs/python/lib")
sys.path.append("d:/Programs/python/lib")

from tkfile import tkFile
from tkutils import terminate, pfloat, pint, safe_getelement
from tkutils import getarg, getintarg, getfloatarg
from tkinifile import tkIniFile

fmask = '*.in'
AddSection = 0

def usage():
    print("")
    argv = sys.argv
    print(f"usage: python {argv[0]} fmask AddSection")
    print("   fmask: default [*.in]")
    print("   AddSection: 0 (default) or 1")
    print(f"   ex: python {argv[0]} {fmask} {AddSection}")
    print("")

def main():
    global fmask, AddSection

    fmask      = getarg   (1, fmask)
    AddSection = getintarg(2, AddSection)
    
    print("")
    print(f"Search [{fmask}]")
    files = glob.glob(fmask,  recursive=True)
    files.sort()
    keys = []
    infs = []
    for f in files:
        print(f"{f}:")
        ini = tkIniFile()
        inf = ini.ReadAll(f, AddSection = AddSection)
        if inf is None:
            print(f"  Warning: Can not read [{f}]")
            continue

#        print("  inf:", inf)
        infs.append(inf)
        keys = keys | inf.keys()
#        print("  keys:", keys)

    keys = list(keys)
    keys.sort()
    fp = tkFile('summary.csv', 'w')
    fp.Write(",".join(['file'] + keys) + '\n')
    for i in range(len(infs)):
        inf = infs[i]
        f   = files[i]
        values = [inf.get(key, '').split(':')[0] for key in keys]
        fp.Write(",".join([f] + values) + '\n')
    fp.Close()

    usage()

    
if __name__ == '__main__':
    main()

        
