read_commandline() { # Processing command line options local want_module=false local want_logfile=false for opt in $@; do if [[ $want_module != true ]] && [[ $want_logfile != true ]]; then case $opt in "-h"|"--help") disp_help exit 0 ;; "-v"|"--version") show_version exit 0 ;; "-m"|"--module") local want_module=true ;; "-c"|"--check-only") export CHECK_ONLY=true ;; "-j"|"--jump") export JUMP=true ;; "-k"|"--keep-going") export KEEPGOING=true ;; "-r"|"--resume") if [[ -s $STAGE_FILE ]]; then export RESUME=true else prnt E "Le fichier d'état n'existe pas ou est vide !" prnt E "Sans ce fichier, la reprise n'est pas possible." die 1 --force fi ;; "-R"|"--no-root-check") export NO_ROOT_CHECK=true ;; "-l"|"--logfile") local want_logfile=true ;; *) prnt E "Paramètre \"$opt\" non géré." die 1 --force ;; esac else if [[ $want_module == true ]]; then [[ $want_logfile == true ]] && synthax_error if [[ ! $MANUAL_MODULE_LIST ]]; then export MANUAL_MODULE_LIST=$opt want_module=false else prnt E "Une liste de module à déjà été fournie !" prnt E "La ligne de commande ne tolère qu'un paramètre --module." die 1 --force fi elif [[ $want_logfile == true ]]; then [[ $want_module == true ]] && synthax_error if [[ ! $NEW_LOGFILE ]]; then export NEW_LOGFILE=$opt want_logfile=false else prnt E "Il n'est pas possible de spécifier plusieurs fichiers de log." die 1 --force fi fi fi done # If those var are true at that point, something is wrong if [[ $want_logfile == true ]] || [[ $want_module == true ]]; then prnt E "Erreur de syntaxe dans la ligne de commande." die 1 fi } export -f read_commandline load_configuration() { prnt I "Chargement de la configuration..." if [[ -e $MYPATH/conf/$HOSTNAME.conf ]]; then prnt I "Une configuration spécifique sera utilisé." . $MYPATH/conf/$HOSTNAME.conf else if [[ -e $MYPATH/conf/init.conf.sh ]]; then prnt I "Une configuration générique sera utilisé." . $MYPATH/conf/init.conf.sh else prnt E "Aucune configuration trouvée, impossible de continuer." die 2 --force fi fi } export -f load_configuration process_commandline_and_vars() { # Check unconsistant parameters if [[ $CHECK_ONLY == true ]]; then [[ $JUMP == true ]] && ( prnt E "Les options --check-only et --jump s'excluent mutuellement !" die 1 --force ) [[ $KEEPGOING == true ]] && ( prnt E "Les options --keep-going et --check-only sont incompatible !" die 1 --force ) fi if [[ $RESUME == true ]]; then [[ $CHECK_ONLY == true ]] && ( prnt E "La reprise n'a pas de sens avec --check-only." die 1 --force ) [[ $MANUAL_MODULE_LIST ]] && ( prnt E "Le mode reprise ne fonctionne pas avec une liste de modules passé manuellement." die 1 --force ) fi # Configure module list if [[ $MANUAL_MODULE_LIST ]]; then prnt W "Une liste de modules manuelle sera utilisé." export MODULE_LIST=$(echo $MANUAL_MODULE_LIST | sed "s/,/ /g") fi # Check for module list existance en basic syntax if [[ -n $MODULE_LIST ]]; then if [[ $(echo $MODULE_LIST | grep '-') ]]; then prnt E "Le tiret est interdit dans les noms de module." die 5 fi else prnt E "Aucun module à exécuter !" die 5 fi } export -f process_commandline_and_vars