beginning "create_vm" module, splitted main program

This commit is contained in:
fatalerrors
2021-07-13 12:58:47 +02:00
parent 3f8d3b633f
commit 83a41fd21c
6 changed files with 198 additions and 116 deletions

118
init.sh
View File

@@ -59,66 +59,13 @@ export KEEPGOING=false
export RESUME=false
export STAGE_FILE="$MYPATH/stage"
# Processing command line options
want_module=false
for opt in $@; do
if [[ $want_module == false ]]; then
case $opt in
"-h"|"--help")
disp_help
exit 0
;;
"-v"|"--version")
show_version
exit 0
;;
"-m"|"--module")
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
;;
*)
prnt E "Paramètre \'$opt\' non géré."
disp_help
exit 1
;;
esac
else
if [[ ! $MANUAL_MODULE_LIST ]]; then
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
fi
done
read_commandline
# After this we need to be root
# (--help and --version are allowed as unprivileged user)
if [[ $EUID -ne 0 ]]; then
prnt E "Ce script doit être démarré en tant que root. Arrêt."
die 4 --force
fi
check_root
# Logfile variable treatment
# Logfile variable treatment -- cannot be a function
export LOGFILE=${LOGFILE:-"$MYPATH/log/init-$(uname -n)-$(stdtime).log"}
prnt I "Création du répertoire d'accueil du fichier log..."
@@ -131,64 +78,11 @@ exec > >(tee -a $LOGFILE)
exec 2> >(tee -a $LOGFILE >&2)
prnt I "Démarrage d'init version $VERSION."
# 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
# -- Cannot be a function ends here
if [[ $want_module == true ]]; then
prnt E "La liste des modules à exécuter est manquante !"
die 1 --force
fi
load_configuration
# 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
process_commandline_and_vars
# Run prechecks
[[ JUMP != true ]] && for mod in $MODULE_LIST; do