Avant-propos
J'ai déjà publié un petit journal sur cette bibliothèque : linuxfr.org/users/seraf1/journaux/args-parser-pour-shell.
Depuis, le dépôt a déménagé sur Codeberg, et il y a eu quelques petites modifications.
Présentation
Auxilium
est une bibliothèque (compatible POSIX) de fonctions pour les scripts Shell, conçue pour simplifier l'analyse des arguments en ligne de commande et la génération automatique de messages d'aide (--help
). Elle offre une méthode structurée pour définir des options, des arguments positionnels, des valeurs par défaut, des listes de choix et des fonctions de rappel, tout en prenant en charge la génération de scripts d'auto-complétion.
Ce script n'est pas destiné à être exécuté directement, mais à être "sourcé" (inclus) dans vos propres scripts shell.
Pourquoi utiliser Auxilium.sh ?
Si vous écrivez régulièrement des scripts shell, vous savez que la gestion des arguments peut rapidement devenir complexe et fastidieuse. auxilium.sh
s'occupe de cette complexité pour vous, vous permettant de vous concentrer sur la logique principale de votre script.
Fonctionnalités principales
- Définition facile des arguments : Ajoutez des arguments avec des noms longs (
--arg
) et des options courtes (-a
). - Types d'arguments variés : Supporte les chaînes de caractères (
str
), les options binaires (opt
) et les arguments positionnels (positional
).. - Valeurs par défaut : Définissez des valeurs par défaut pour vos arguments.
- Listes de choix : Limitez les valeurs possibles pour un argument à une liste prédéfinie.
- Fonctions de rappel (Callbacks) : Exécutez une fonction spécifique lorsqu'un argument est rencontré ou une fois qu'il est analysé.
- Gestion des arguments restants : Capturez tous les arguments restants après un argument spécifique.
- Génération automatique de l'aide (
--help
) : Créez automatiquement un message d'aide détaillé affichant toutes les options, leurs descriptions, les valeurs par défaut et les choix possibles. - Génération d'auto-complétion : Générez des scripts d'auto-complétion pour Bash et Zsh.
- Nettoyage automatique : Supprime les fichiers temporaires créés par l'utilitaire.
Exemple d'utilisation
Voici un exemple simple pour illustrer comment utiliser Auxilium
dans votre propre script :
#!/bin/sh
# Assurez-vous que auxilium.sh est accessible
# Remplacez /chemin/vers/auxilium.sh par le chemin réel
. /usr/share/auxilium/auxilium.sh
# --- 1. Initialisation de l'application ---
auxilium_init "mon_app" -m "Une application d'exemple pour démontrer Auxilium."
# --- 2. Ajout des arguments ---
auxilium_add "fichier_config" -s c -t str -m "Chemin vers le fichier de configuration." -d "/etc/mon_app/config.conf"
auxilium_add "verbeux" -s v -t opt -m "Activer le mode verbeux."
auxilium_add "action" -s a -t str -l "demarrer|arreter|redemarrer" -m "Action à exécuter." -d "demarrer"
auxilium_add "cible" -t positional -m "Cible de l'opération (argument requis)."
# --- 3. Analyse des arguments ---
auxilium_parse "$@"
# --- 4. Accès aux valeurs des arguments ---
echo "Fichier de configuration : ${AUXILIUM_ARG_FICHIER_CONFIG}"
echo "Action à effectuer : ${AUXILIUM_ARG_ACTION}"
if [ "${AUXILIUM_ARG_VERBEUX}" = "1" ]; then
echo "Mode verbeux activé."
fi
if [ -n "${AUXILIUM_ARG_CIBLE}" ]; then
echo "Cible de l'opération : ${AUXILIUM_ARG_CIBLE}"
else
echo "Erreur : Une cible est requise."
auxilium_usage # Affiche l'aide si un argument positionnel requis est manquant
exit 1
fi
# --- 5. Nettoyage des fichiers temporaires ---
auxilium_close
Contribuer
Les contributions sont les bienvenues ! N'hésitez pas à forker le dépôt, proposer des améliorations, signaler des bugs ou soumettre des pull requests.
Licence
Ce script est distribué sous la licence Apache 2.0. Consultez le fichier debian/copyright
pour plus de détails.
Développé par Philippe SÉRAPHIN
Site web : auxilium.spn109.fr
Dépôt GIT : codeberg.org/spn109/auxilium
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.