nur-sery/wip_app/app/cli/TODO.md

37 lines
1.8 KiB
Markdown
Raw Normal View History

2024-03-25 19:52:12 +04:00
# cli
* [ ] implémenter les arguments avancés avec le préfixe "++" sur la description
* [ ] pour le nombre d'arguments, supporter l'alias `*` pour `0..N` et `+` pour `1..N`
2024-09-25 17:10:14 +04:00
* [ ] transformer un schéma en définition d'arguments, un tableau en liste d'arguments, et vice-versa
2024-05-14 22:49:51 +04:00
actuellement, même si la surcharge d'option fonctionne, l'affichage de l'aide est incorrecte
* possibilité de merger *une définition d'option*
* lors de la surcharge d'une définition d'option, certaines options sont supprimées. quand toutes les options sont supprimées, la définition disparait.
* possibilité de modifier une précédente définition, notamment en rajoutant "disabled" => true pour désactiver (supprimer) la définition
* cela implique d'avoir un moyen de sélectionner une précédente définition, e.g
~~~php
const ARGS = [
2024-09-25 17:10:14 +04:00
## exemple n°1
["-o", "--option"],
["extends" => "-o", "disabled" => true],
# effet: la définition -o,--option est supprimée
## exemple n°2
# étendre une précédente définition
["-a", "--first"],
["extends" => "-a", "extends_delete" => ["--first"], "--second"],
# résultat final: ["-a", "--second"]
## exemple n°3
# créer une définition à partir d'une autre
["merge" => ["-b", "--premier"], "merge_delete" => ["--premier"], "--deuxieme"],
# résultat final: ["-b", "--deuxieme"]
2024-05-14 22:49:51 +04:00
];
~~~
* pour faciliter l'implémentation de toutes ces fonctionnalités, faire une classe Option qui contient toutes les méthodes appropriées
faire une implémentation SimpleArgsParser qui ne supporte pas les commandes, uniquement les options
puis faire une implémentation ArgsParser qui supporte les commandes, et les options dynamiques
2024-03-25 19:52:12 +04:00
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary