Sommaire
Voici une mise à jour que j'ai eu du mal à mettre au point, surtout pour la génération de fichiers de complétion pour zsh qui ne gère pas nativement les sous-commandes.
Mais voilà, tout fini par arriver et Auxilium gère enfin les sous-commandes !
Mais tout d'abord, un petit rappel
Auxilium est une bibliothèque shell POSIX complète pour le parsing d'arguments du genre de argparse pour python. Auxilium simplifie la création de scripts shell avec une gestion avancée des paramètres.
Fonctionnalités clés :
- Compatible POSIX (bash, zsh, dash, ksh)
- Gestion des sous-commandes
- Définition simple d'arguments longs et courts
- Autocomplétion pour Bash et Zsh
Exemple de code et résultats
Script Bash
#!/usr/bin/bash
. /usr/share/auxilium/auxilium.sh
# Callback functions for subcommands
start_callback() {
echo "Starting service: $2"
}
stop_callback() {
echo "Stopping service"
}
# Initialize
auxilium_init "myapp" -m "Application with subcommand support"
# Add subcommands
auxilium_add "start" -t subcommand -c start_callback -m "Start the service"
auxilium_add "stop" -t subcommand -c stop_callback -m "Stop the service"
auxilium_add "status" -t subcommand -m "Show service status"
# Add common options
auxilium_add "verbose" -s v -t opt -m "Enable verbose output" -S '*'
auxilium_add "config" -s c -t file -d "/etc/myapp.conf" -m "Configuration file" -S '+'
# Add subcommand-specific arguments
auxilium_add "service_name" -t positional -S start -m "Name of service to start"
auxilium_add "force" -t opt -S stop -m "Force stop"
auxilium_add "log_file" -t file -S start -m "Log file path"
# Parse arguments
auxilium_parse ${@}
# Handle subcommands
case "${AUXILIUM_ARG_SUBCOMMAND}" in
start)
echo "Starting service: ${AUXILIUM_ARG_SERVICE_NAME}"
;;
stop)
echo "Stopping service"
[ "${AUXILIUM_ARG_FORCE}" = "1" ] && echo "Force stop enabled"
;;
status)
echo "Service status: running"
;;
esac
auxilium_close
Lancement avec sous-commande
≥ auxilium_test start my_service
Starting service: start
Appel de l'aide principale
≥ auxilium_test --help
Description:
Application with subcommand support
Usage: auxilium_test {start|stop|status} [-h|--help ] [--sh_completion SH_COMPLETION] [-v|--verbose ]
Subcommands:
start
Start the service
stop
Stop the service
status
Show service status
Optional Arguments:
-h|--help
This help message
--sh_completion SH_COMPLETION Choice: bash|zsh
Generate shell completion script
-v|--verbose
Enable verbose output
Appel de l'aide pour la sous-commande 'start'
≥ auxilium_test start --help
Description:
auxilium_test start - Start the service
Usage: auxilium_test start [-h|--help ] [-v|--verbose ] [-c|--config CONFIG] [--log_file LOG_FILE] <SERVICE_NAME>
Optional Arguments:
-h|--help
This help message
-v|--verbose
Enable verbose output
-c|--config CONFIG Default: /etc/myapp.conf
Configuration file
--log_file LOG_FILE
Log file path
Positional Arguments:
SERVICE_NAME
Name of service to start
Appel de l'aide pour la sous-commande 'stop'
≥ auxilium_test stop --help
Description:
auxilium_test stop - Stop the service
Usage: auxilium_test stop [-h|--help ] [-v|--verbose ] [-c|--config CONFIG] [--force ]
Optional Arguments:
-h|--help
This help message
-v|--verbose
Enable verbose output
-c|--config CONFIG Default: /etc/myapp.conf
Configuration file
--force
Force stop
Completion Bash
$ bin/auxilium_test <TAB>
-h --sh_completion status -v
--help start stop --verbose
$ bin/auxilium_test stop -<TAB>
--force -h --help --sh_completion -v --verbose
Completion Zsh
≥ bin/auxilium_test <TAB>
--help -h -- This help message
--sh_completion -- Generate shell completion script
start -- Start the service
status -- Show service status
stop -- Stop the service
--verbose -v -- Enable verbose output
≥ bin/auxilium_test stop -<TAB>
--config -c -- Configuration file
--force -- Force stop
--help -h -- This help message
--verbose -v -- Enable verbose output
Appli l'utilisant
Dispositio (Dépêche ici)
Contribution
- Vous pouvez rapporter des bogues ici : https://codeberg.org/spn109/auxilium/issues
- Toute aide est la bienvenue
- Si vous voulez faire des paquets pour les distributions (Archlinux OK), bienvenue !
Liens
- Site : https://spn109.fr/auxilium/
- Sources : https://codeberg.org/spn109/auxilium
# lien ko
Posté par Quiwy . Évalué à 1 (+1/-0). Dernière modification le 22 août 2025 à 13:01.
Salut, le lien vers la dépêche Dispositio est cassé :(
Super comme bibliothèque, faut vraiment que je me penche dessus !
[^] # Re: lien ko
Posté par seraf1 (site web personnel) . Évalué à 1 (+0/-0).
Exact, il y a un http:// supplémentaire en début de lien. Un modérateur pourrait-il corriger ça ? Merci.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.