Ejemplo n.º 1
0
def config_project_show(args):
    # Open config
    config_editor.open(config.config_file)

    if not config_editor.has_project(args.name):
        sys.stderr.write('Project \'{}\' does not exist in config file\n'.format(args.name))
        sys.exit(1)

    # List options in project
    try:
        sys.stdout.write('Taskwarrior project name: {}\n'.format(config_editor.read(args.name, 'taskwarrior_project_name')))
    except NoOptionError:
        try:
            sys.stdout.write('Taskwarrior project name (Using DEPRECATED option tw_project_name): {}\n'.format(config_editor.read(args.name, 'tw_project_name')))
        except NoOptionError:
            sys.stdout.write('Warning: missing Taskwarrior project name\n')
    try:
        sys.stdout.write('Trello board name: {}\n'.format(config_editor.read(args.name, 'trello_board_name')))
    except NoOptionError:
        sys.stdout.write('Warning: missing Trello board name\n')
    sys.stdout.write('Trello To Do list: {}\n'.format(config_editor.read(args.name, 'trello_todo_list', 'To Do')))
    sys.stdout.write('Trello Doing list: {}\n'.format(config_editor.read(args.name, 'trello_doing_list', 'Doing')))
    sys.stdout.write('Trello Done list: {}\n'.format(config_editor.read(args.name, 'trello_done_list', 'Done')))
    trello_lists_filter = config_editor.read(args.name, 'trello_lists_filter', '')
    if trello_lists_filter != '':
        sys.stdout.write('Trello lists filter: {}\n'.format(trello_lists_filter))
    try:
        sys.stdout.write('Sync only my cards: {}\n'.format(config_editor.readboolean(args.name, 'only_my_cards')))
    except ValueError:
        sys.stdout.write('Warning: misconfigured only_my_cards option\n')
Ejemplo n.º 2
0
def config_project_add(args):
    # Open config
    config_editor.open(config.config_file)

    if config_editor.has_project(args.name):
        sys.stderr.write('A project with name \'{}\' already exists, please use modify command to edit it\n'.format(args.name))
        sys.exit(1)

    if ' ' in args.name:
        sys.stderr.write('A project name must not contain spaces\n')
        sys.exit(1)

    # Add new project
    config_editor.write(args.name, 'taskwarrior_project_name', args.taskwarrior)
    config_editor.write(args.name, 'trello_board_name', args.trello)
    config_editor.write(args.name, 'trello_todo_list', args.todo)
    config_editor.write(args.name, 'trello_doing_list', args.doing)
    config_editor.write(args.name, 'trello_done_list', args.done)
    if args.filter is not None:
        config_editor.write(args.name, 'trello_lists_filter', args.filter)
    if args.only_my_cards:
        config_editor.write(args.name, 'only_my_cards', True)

    if not args.disabled:
        # Add project to enabled projects
        config_editor.enable_project(args.name)

    config_editor.save()
    logger.info('Added {} project \'{}\''.format('disabled' if args.disabled else 'enabled', args.name))
Ejemplo n.º 3
0
def config_project_modify(args):
    # Check if user provides any option
    if not any([args.taskwarrior, args.trello, args.todo, args.doing, args.done, args.filter, args.only_my_cards]):
        sys.stderr.write('Must provide an option to modify\n')
        sys.exit(1)

    # Open config
    config_editor.open(config.config_file)

    if not config_editor.has_project(args.name):
        sys.stderr.write('Project \'{}\' does not exist in config file\n'.format(args.name))
        sys.exit(1)

    # Modify options
    if args.taskwarrior is not None:
        config_editor.write(args.name, 'taskwarrior_project_name', args.taskwarrior)
    if args.trello is not None:
        config_editor.write(args.name, 'trello_board_name', args.trello)
    if args.todo is not None:
        config_editor.write(args.name, 'trello_todo_list', args.todo)
    if args.doing is not None:
        config_editor.write(args.name, 'trello_doing_list', args.doing)
    if args.done is not None:
        config_editor.write(args.name, 'trello_done_list', args.done)
    if args.filter is not None:
        config_editor.write(args.name, 'trello_lists_filter', args.filter)
    if args.only_my_cards is not None:
        config_editor.write(args.name, 'only_my_cards', True if args.only_my_cards == 'yes' else False)

    config_editor.save()
    logger.info('Project \'{}\' modified'.format(args.name))
Ejemplo n.º 4
0
def config_set(args):
    section, option = parse_option(args.option)

    # Open config
    config_editor.open(config.config_file)

    # Save value
    config_editor.write(section, option, args.value)
    config_editor.save()
    logger.info('Added \'{}\' with value \'{}\''.format(args.option, args.value))
Ejemplo n.º 5
0
def config_project_disable(args):
    # Open config
    config_editor.open(config.config_file)

    # Disable project
    if config_editor.disable_project(args.name):
        config_editor.save()
        logger.info('Project \'{}\' disabled'.format(args.name))
    else:
        sys.stderr.write('Project \'{}\' is already disabled\n'.format(args.name))
        sys.exit(1)
Ejemplo n.º 6
0
def config_project_remove(args):
    # Open config
    config_editor.open(config.config_file)

    # Remove project
    if config_editor.remove_project(args.name):
        # Disable project too
        config_editor.disable_project(args.name)
        config_editor.save()
        logger.info('Project \'{}\' removed'.format(args.name))
    else:
        sys.stderr.write('Project \'{}\' does not exist in config file\n'.format(args.name))
        sys.exit(1)
Ejemplo n.º 7
0
def config_get(args):
    section, option = parse_option(args.option)

    # Open config
    config_editor.open(config.config_file)

    # Print value
    try:
        sys.stdout.write('{}\n'.format(config_editor.read(section, option)))
    except NoSectionError:
        raise SystemExit('Section \'{}\' not found in config file'.format(section))
    except NoOptionError:
        raise SystemExit('Option \'{}\' not found in section \'{}\''.format(option, section))
Ejemplo n.º 8
0
def config_project_list(args):
    # Open config
    config_editor.open(config.config_file)

    # Every config section is a project
    projects = config_editor.list()

    if projects != []:
        projects.sort()
        enabled_projects = config_editor.list_enabled_projects()
        for project in projects:
            # List projects
            status = 'Enabled' if project in enabled_projects else 'Disabled'
            sys.stdout.write('Project \'{}\': {}\n'.format(project, status))
    else:
        sys.stdout.write('No projects declared in config file\n')
Ejemplo n.º 9
0
def config_project_enable(args):
    # Open config
    config_editor.open(config.config_file)

    if not config_editor.has_project(args.name):
        sys.stderr.write('Project \'{}\' does not exist in config file\n'.format(args.name))
        sys.exit(1)

    if config_editor.has_project_enabled(args.name):
        sys.stderr.write('Project \'{}\' is already enabled\n'.format(args.name))
        sys.exit(1)

    # Enable project
    config_editor.enable_project(args.name)
    config_editor.save()
    logger.info('Project \'{}\' enabled'.format(args.name))
Ejemplo n.º 10
0
def config_remove(args):
    section, option = parse_option(args.option)

    # Open config
    config_editor.open(config.config_file)

    # Remove
    try:
        if config_editor.remove(section, option):
            config_editor.save()
            logger.info('Option \'{}\' removed'.format(args.option))
        else:
            sys.stderr.write('Cannot delete \'{}\', does not exist in config file\n'.format(args.option))
            sys.exit(1)
    except NoSectionError:
        raise SystemExit('Section \'{}\' not found in config file'.format(section))