#!/usr/bin/env python3

import argparse

import lesana.command

class Lesana():
    """
    Manage collections
    """

    commands = (
        ('new', lesana.command.New()),
        ('edit', lesana.command.Edit()),
        ('show', lesana.command.Show()),
        ('index', lesana.command.Index()),
        ('search', lesana.command.Search()),
        ('export', lesana.command.Export()),
        ('init', lesana.command.Init()),
        ('rm', lesana.command.Remove()),
        )

    def _main(self):
        self.parser.print_help()

    def main(self):
        self.parser = argparse.ArgumentParser()
        self.parser.set_defaults(func=self._main)
        self.subparsers = self.parser.add_subparsers()
        for name, sub in self.commands:
            s_parser = self.subparsers.add_parser(name, help=sub.help)
            for arg in sub.arguments:
                s_parser.add_argument(*arg[0], **arg[1])
            s_parser.set_defaults(func=sub._main)
        self.args = self.parser.parse_args()
        self.args.func(self.args)



if __name__ == '__main__':
    Lesana().main()
