Source

aodag.tasks / aodag / tasks / __init__.py

Full commit
#
import argparse
from . import apis
from . import commands

from configparser import SafeConfigParser


def make_parser():
    parser = argparse.ArgumentParser()
    parser.add_argument('-c', '--config', help="specify config file")
    subparsers = parser.add_subparsers()
    list_parser = subparsers.add_parser('list', help="list tasks")
    list_parser.set_defaults(func=commands.list_tasks)
    list_parser.add_argument('-s', '--state', choices=['new', 'active', 'finished', 'all'], default='all')
    add_parser = subparsers.add_parser('add', help="add tasks")
    add_parser.set_defaults(func=commands.add_task)
    finish_parser = subparsers.add_parser('finish', help="finish tasks")
    finish_parser.set_defaults(func=commands.finish_task)
    return parser

def main():
    parser = make_parser()
    args = parser.parse_args()
    config = SafeConfigParser()
    if args.config:
        print("read config {0}".format(args.config))
        config.read(args.config)
    args.config = config
    if not args.config.has_section('tasks'):
        args.config.add_section('tasks')
    if not args.config.has_option('tasks', 'file'):
        args.config.set('tasks', 'file', 'tasks.data')

    hasattr(args, 'func')
    args.func(args)