#!/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()