nutools/lib/pyulib/src/uapps/pyutasks.py

97 lines
3.3 KiB
Python
Executable File

#!/usr/bin/env python2
# -*- coding: utf-8 -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
import sys
from ulib.all import *
from ulib.tasks import *
from uapps.tasks import *
def display_help():
uprint(u"""%(scriptname)s: gestion de tâches
USAGE
%(scriptname)s [options] cmd [args]
OPTIONS
-h, --help
-c, --config
Spécifier le fichier de configuration (par défaut ~/.utools/tasksrc)
-S, --stores
Spécifier la liste des sources pour les tâches (une par ligne). La
commande add utilise la première source de cette liste. Toutes les
autres commandes agissent sur l'ensemble des sources.
-s, --tasksfile
Spécifier une source unique pour toutes les opérations.
--tasksdir
--projdirs
--purgedfile
Autres options qui peuvent être modifiées dans le fichier de
configuration.
COMMANDS
add [-d] [-e] title [+projects...] [@contexts...]
Créer une tâche.
-d marquer la nouvelle tâche comme faite.
-e éditer la nouvelle tâche.
list [-aqdln] [filter...]
Lister les titres des tâches correspondant au filtre.
-a Afficher TOUTES les tâches (par défaut si un filtre est fourni)
-q Afficher les tâches qui sont affichable (par défaut)
-d Afficher uniquement les tâches qui peuvent être effectuées
-l Afficher aussi les détails sur les tâches.
-n Ne pas afficher les statistiques.
edit tid
Editer la tâche #tid.
do tid [tids...]
Marquer la(es) tâche(s) #tid(s) comme faite(s).
nodo tid [tids...]
Marquer la(es) tâche(s) planifiées #tid(s) comme NON faite(s).
La prochaine échéance de la tâche est calculée.
start [-x] tid [summary]
Démarrer une tâche: la marquer comme étant en cours, en ajoutant
éventuellement une description de ce qui doit être fait.
-x Arrêter toutes les tâches en cours avant de démarrer la tâche
sélectionnée.
stop tid [summary]
Arrêter une tâche, en ajoutant éventuellement une description de ce qui
a été fait.
stop -a
Arrêter TOUTES les tâches en cours, plutôt que simplement celle
sélectionnée.
toggle [-x] tid [summary]
Démarrer/arrêter une tâche.
-x S'il faut démarrer la tache, arrêter d'abord toutes les autres
tâches. Sinon, ignorer cette option.
remove tid [tids...]
Supprimer la(es) tâche(s) #tid(s).
purge
Archiver les tâches faites. Elles ne seront plus affichées.
report
Faire un état de l'état d'avancement des tâches par projet.""" % globals())
def run_tasks():
options, longoptions = build_options([
('h', 'help', u"Afficher l'aide"),
])
ctl = TasksCtl()
options, args = ctl.get_args(None, options, longoptions)
for option, value in options:
if option in ('-h', '--help'):
display_help()
sys.exit(0)
elif ctl.is_option(option, value):
pass
itf, cmd_name, args = get_tasks_itf(args, ctl)
if itf is None:
display_help()
sys.exit(1)
try:
exit(itf.run(args, cmd_name=cmd_name))
except Exit: raise
except: die()
if __name__ == '__main__':
run_tasks()