Example #1
0
def autofill(options, args):
    """Usage: autofill
    """

    auto_add = get_auto_add_direction(options.file, options.unparsed_file)

    if auto_add != settings.AUTO_ADD_OPTIONS['NO']:
        auto_fill_days = settings.get_auto_fill_days()
        if auto_fill_days:
            today = datetime.date.today()
            last_day = calendar.monthrange(today.year, today.month)
            last_date = datetime.date(today.year, today.month, last_day[1])

            create_file(options.file)
            _prefill(options.file, auto_add, auto_fill_days, last_date)
Example #2
0
def edit(options, args):
    """Usage: edit

    Opens your zebra file in your favourite editor."""
    # Create the file if it does not exist yet
    create_file(options.file)

    try:
        auto_add = get_auto_add_direction(options.file, options.unparsed_file)
    except ParseError as e:
        pass
    else:
        if auto_add is not None and auto_add != settings.AUTO_ADD_OPTIONS['NO']:
            auto_fill_days = settings.get_auto_fill_days()
            if auto_fill_days:
                _prefill(options.file, auto_add, auto_fill_days)

            parser = get_parser(options.file)
            parser.auto_add(auto_add)
            parser.update_file()

    # Use the 'editor' config var if it's set, otherwise, fall back to
    # sensible-editor
    try:
        editor = settings.get('default', 'editor').split()
    except ConfigParser.NoOptionError:
        editor = ['sensible-editor']

    editor.append(options.file)

    try:
        subprocess.call(editor)
    except OSError:
        if 'EDITOR' not in os.environ:
            raise Exception('Can\'t find any suitable editor. Check your EDITOR'\
            ' env var.')

        subprocess.call([os.environ['EDITOR'], options.file])

    status(options, args)