nutools/lib/pyulib/migrate/tasks1/TODO_helper.py

100 lines
2.9 KiB
Python
Raw Normal View History

2013-08-27 15:14:44 +04:00
#!/usr/bin/env python
# -*- coding: utf-8 -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
"""%(name)s: Fonction à usage de TODO pour gérer les tiddlywikis
USAGE
%(name)s tiddlywiki.html [actions]
"""
try: True, False
except NameError: True, False = 1, 0
import os, sys, re
from os import path
from time import localtime
from base import *
from TiddlyWiki import *
from TiddlyWiki import ARGS_ENCODING # XXX
from TODO import *
######################################################################
# Fonctions de support pour TODO
def do_update_todo(twfile, project=None, id=None, todoline=None, args=None):
"""USAGE: update_todo project id todoline
"""
i = 0
if project is None:
if args[i:i + 1]: project = args[i]
if project is None: die("Il faut spécifier le projet")
i = i + 1
if id is None:
if args[i:i + 1]: id = args[i]
if project is None: die("Il faut spécifier l'id")
i = i + 1
if todoline is None:
if args[i:i + 1]: todoline = unicode(args[i], ARGS_ENCODING)
if todoline is None: die("Il faut spécifier la ligne de TODO")
todofile = TiddlyTODOFile(twfile, project)
if todoline:
todo = TODO(todoline=todoline)
todofile.put(todo)
else:
todofile.remove(id)
todofile.save()
def do_report(todorc, **ignored):
"""USAGE: report
"""
ts = TODOs(todorc)
ts.do_report()
######################################################################
# L'application principale
def ensure(twfile):
if twfile is None: twfile = "TODO.html"
if not path.exists(twfile): die("Fichier inexistant: %s" % twfile)
else: return twfile
def run():
todorc = None
twfile = None
2015-08-20 07:58:17 +04:00
2013-08-27 15:14:44 +04:00
opts, args = get_args(None, [
("h", "help", "Afficher l'aide"),
("c:", None, "Spécifier le fichier todorc"),
("f:", None, "Spécifier le fichier tiddlywiki.html"),
])
for opt, value in opts:
if opt in ("-h", "--help"):
print __doc__ % {"name": path.split(sys.argv[0])}
sys.exit(0)
elif opt in ("-c", ):
todorc = value
elif opt in ("-f", ):
twfile = value
action = args[0:1] and args[0] or "list"
if action in ("l", "list"):
list_tiddlers(ensure(twfile), args[1:])
elif action in ('a', 'add', 'r', 'replace'):
replace_tiddler(ensure(twfile), args=args[1:])
elif action in ('d', 'delete'):
delete_tiddler(ensure(twfile), args=args[1:])
elif action in ('update_todo', 'update_done'):
do_update_todo(ensure(twfile), args=args[1:])
elif action in ('report', ):
do_report(todorc, args=args[1:])
elif action in ('update_all', ):
# XXX à faire: équivalent de TODO update
do_update_all(todorc, args=args[1:])
else:
die("Action invalide: %s" % action)
if __name__ == "__main__":
run()