import subprocess


LINK = "https://github.com/ekalinin/github-markdown-toc"
OUTPUT = "readme.md"
OUTLINE = "outline.md"
INPUT = [
        "learning_python3.md",
        "learning_python3_gui.md",
        "learning_git.md",
        "what_is_next.md",
        ]
CMD = "gh-md-toc"
FILTER = "(#"
TITLE = "Table of Contents"


if __name__ == "__main__":
    try:
        p = subprocess.Popen([CMD], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        output, err = p.communicate()
    except Exception as e:
        print("please install {}".format(LINK))
        exit()
    CONTENT = []
    for f in INPUT:
        p = subprocess.Popen([CMD, f], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        output, err = p.communicate()
        output = output.decode().split("\n")
        for line in output:
            if FILTER in line:
                line = line.replace(FILTER, "(./{}#".format(f))
            if TITLE in line:
                title = " ".join(f.replace(".md", "").split("_")).capitalize()
                line = title
            CONTENT.append(line)
    p = subprocess.Popen(["cp", OUTLINE, OUTPUT], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    p.wait()
    print("writing")
    with open(OUTPUT, "a") as fp:
        for line in CONTENT:
            fp.write("{}\n".format(line))
    print("done...")
