Taches en script (todo)
Besoin
Les listes de tâches sont un outil essentiel pour moi. Depuis plusieurs années, j’essaye différentes applications et différentes méthodes sur mon téléphone, sur internet ou même sur un tableau blanc. J’utilise aujourd’hui plusieurs outils en fonction du contexte (travail, vie perso, associations). J’ai en déduis que ce qui m’est le plus utile, c’est un outil :
- simple
- à portée de mains
- avec une ergonomie rapide
J’ai besoin de quelque chose de simple car le principal avantage de cette liste est de n’oublier aucune tâche. L’état d’avancement, les dates ne sont que des plus, mais à l’usage, ne me sont pas absolument nécessaires. Si je veux avoir une liste de tâches à jour ou bien être sûr de pouvoir noter ce qui me passe par la tête sur le moment, j’ai besoin d’un outil rapide à démarrer et qui soit utilisable dans le contexte où je suis. Je ne veux pas avoir à m’arrêter pour prendre mon téléphone ou démarrer un outil. C’est pourquoi je veux un outil à portée de main. Enfin, toujours dans l’optique d’avoir un outil rapide et le moins perturbant possible, je veux une ergonomie extrêmement rapide. Je ne veux pas avoir à enchaîner les clics pour ajouter une simple tâche.
Pour le travail, j’ai donc décidé d’implémenter un outil en ligne de commande qui va me permettre de lister les tâches à effectuer. Pour l’instant, l’ajout d’une tâche se fera en éditant le fichier contenant toutes les informations via un simple vi. Je vais l’implémenter en TDD. Ca tombe bien, je voulais tester le framework shunit2.
Fichier de tâches
Ce fichier sera au début édité à la main. Il a le format suivant :
- une ligne représente une tâche
- les champs sont séparés par des tabulations
- les champs ne doivent pas contenir de tabulation
- les champs sont les suivants :
<NOM_TACHE> <NOM_PROJETS> <TYPE_TACHE> <PRECEDANCE_TACHE>
Où :
- NOM_TACHE : Nom et description de la tâche. Ex : Appeler MOA
- NOM_PROJETS : Nom des projets Ex : WS URL Post
- TYPE_TACHE : Exterieur | Interieur | Bureau
- PRECEDANCE_TACHE : La tache a précède la tache b. Pour insérer une tâche, sa précédence est aa => l’ordre est a aa b
Application
L’application permet de requeter le fichier de tâches en ligne de commande. Le fichier de tâches est passé en argument avec l’option “-f”. La sortie est affichée sur la sortie standard.
- todo types -f FICHIER : retourne les types de tâches définies dans le fichier
- todo projets -f FICHIER : retourne les différents projets définis dans le fichier
- todo taches -f FICHIER] : retourne la liste des tâches triées par ordre alphabétique (ignore la casse)
- todo tachesByProjet -f FICHIER
… : filtre les tâches appartenant aux projets en respectant la précédance - todo tachesByType -f FICHIER
: filtre les tâches ayant le type donné triées par projet puis par précédence
usage : todo <action> -f FICHIER action_args
Les codes retours sont les suivants :
- 0 : Ok
- 1 : Action non autorisee
- 2 : Erreur de fichier de taches
- 3 : Paramètres incorrects (-f absent | type absent)