#!/usr/bin/python3
import csv
import sys

import xml.etree.ElementTree as etree

from xeplib import load_xepinfos


def main():
    import argparse

    parser = argparse.ArgumentParser()

    parser.add_argument(
        "-l", "--xeplist",
        type=argparse.FileType("rb"),
        default=None,
        help="XEP list to use (defaults to ./build/xeplist.xml)"
    )

    parser.add_argument(
        "-d", "--dialect",
        default="unix",
    )

    parser.add_argument(
        "outfile",
    )

    args = parser.parse_args()

    if args.xeplist is None:
        args.xeplist = open("./build/xeplist.xml", "rb")

    with args.xeplist as f:
        tree = etree.parse(f)

    accepted, _ = load_xepinfos(tree)

    with open(args.outfile, "w") as f:
        writer = csv.writer(f, args.dialect)
        for number, info in sorted(accepted.items()):
            writer.writerow([
                number,
                info["title"],
                info["status"].value,
                info["last_revision"]["date"].date(),
                info["last_revision"]["version"],
            ])


if __name__ == "__main__":
    main()