#! /usr/bin/env python

import sys
import re
import argparse
import docutils.core


def main():
    parser = argparse.ArgumentParser(description='Accepts if arg is valid changelog')
    parser.add_argument('filename', action='store')
    args = parser.parse_args(args=sys.argv[1:])

    with open(args.filename, 'r') as fhand:
        content = fhand.read()

    document = docutils.core.publish_doctree(source=content)
    for child in document.children:
        traverse_section(child)

def check_version_section(sec, title):
    print(title)
    for child in sec.children:
        if child.tagname != 'title':
            print(child.tagname, child.children)

def traverse_section(sec):
    for child in sec.children:
        if child.tagname == 'section':
            title = child.children[0].astext()
            if re.match('^[0-9]+\.[0-9_]+\.[0-9_]+$', title):
                check_version_section(child, title)
            else:
                for subchild in sec.children[1:]:
                    if subchild.tagname == 'section':
                        traverse_section(subchild)

if __name__ == '__main__':
    main()
