Ejemplo n.º 1
0
from todotxt import TODOFile, DATE_FMT, todo_from_line

if __name__ == "__main__":
    # todo.sh usage:
    if len(sys.argv) > 1 and sys.argv[1] == "usage":
        print("USAGE: ...")
        sys.exit()

    parser = argparse.ArgumentParser(description="todotxt 'ADD' script")
    parser.add_argument("--dir", default=os.environ.get("TODO_DIR", "."), help="Directory to look for todo.txt files")
    parser.add_argument("-f", dest="fnpat", default="todo.txt", help="filename prefix to save to")
    parser.add_argument("text", nargs=argparse.REMAINDER, help="text of new todo")

    opts = parser.parse_args()

    if opts.fnpat.endswith(".txt"):
        wildcard = ""
    else:
        wildcard = "*.txt"
    fnl = glob(os.path.join(opts.dir, "{}{}".format(opts.fnpat, wildcard)))
    if len(fnl) > 1:
        print("Too many matches for -f: {}".format(", ".join(fnl)))
        sys.exit(1)

    todo_file = TODOFile(fnl[0])

    t = todo_from_line(" ".join(opts.text))
    t.set_created_now()
    todo_file.add_todo(t)
    todo_file.save()
Ejemplo n.º 2
0
                        help="Directory to look for todo.txt files")

    opts = parser.parse_args()
    print("Archiving in {}".format(opts.dir))
    todo_files = glob(opts.dir + "/*.txt")
    done_file = TODOFile(os.path.join(opts.dir, "done.txt"))
    for fn in todo_files:
        bfn = os.path.basename(fn)
        if bfn == "done.txt":
            continue
        f = TODOFile(fn)
        print("{:<18}: ".format(bfn), end="")
        archived = 0
        to_delete = []
        for todo in f.get_todos():
            if not todo.done:
                continue
            done_file.add_todo(todo)
            to_delete.append(todo)
            archived += 1
        for deltodo in to_delete:
            f.delete_todo(deltodo)

        try:
            done_file.save()
            f.save()
        except:
            print("error saving.")
            sys.exit(1)
        print("archived {} todos.".format(archived))