105 lines
4.0 KiB
Bash
105 lines
4.0 KiB
Bash
# ------------------------------------------------------------------------------
|
|
# Base support function
|
|
# This file is part of the init.sh project
|
|
# Copyright (c) 2019-2021 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
|
|
# ------------------------------------------------------------------------------
|
|
# This file is distributed under 3-clause BSD license.
|
|
# The complete license agreement can be obtained at:
|
|
# https://opensource.org/licenses/BSD-3-Clause
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Display help
|
|
disp_help()
|
|
{
|
|
cat << EOF
|
|
Utilisation : init.sh [OPTIONS] [-m|--module <module1,...,moduleN>]
|
|
|
|
Initialise une machine pour l'intégrer à un réseau.
|
|
|
|
Options :
|
|
-f, --file <fichier> Permet de spécifier un fichier de configuration
|
|
à charger manuellement. Cette option peut être répétée
|
|
pour permettre le chargement de plusieurs fichiers de
|
|
configuration, le dernier surchargeant les précédants.
|
|
-m, --module <liste> Lance les modules indiqués même s'il ne sont pas
|
|
dans les fichiers de configuration. Les noms des
|
|
modules doivent être séparés par des virgules.
|
|
-c, --check-only Lance les procédures de vérification sans rien
|
|
modifier.
|
|
-j, --jump Saute les procédures de vérification des
|
|
modules.
|
|
-k, --keep-going Continue l'execution en cas d'erreur.
|
|
-r, --resume Reprend l'execution là ou elle s'est arrêté.
|
|
-R, --no-root-check Ne pas vérifier les droits root (ou UID 0)
|
|
-P, --no-proxy Ne pas utiliser de proxy lors de l'utilisation de
|
|
ce script (n'empêche pas leur configuration via modules)
|
|
-D, --no-deps Ne pas vérifier les dépendances entre les modules.
|
|
-h, --help Affiche ce texte d'aide.
|
|
-s, --shell Lance un shell avec tout l'environnement du script pour
|
|
débogage. Aucune action ou vérification n'est faite en
|
|
dehors des commandes lancées dans le shell.
|
|
--chroot <chemin> Permet à init de ne pas appliquer les modifications au
|
|
système de fichier racine mais à un système différent.
|
|
-l, --logfile <nom> Nom du fichier de log. Peut aussi être changé
|
|
via la variable d'environnement LOGFILE.
|
|
-v, --version Affiche la version de ce script et celles de
|
|
tous les modules disponibles.
|
|
|
|
Attention : les options courtes ne sont pas concaténable.
|
|
|
|
Variable d'environnement :
|
|
LOGFILE Stocke le nom complet du fichier de log qui sera
|
|
produit.
|
|
|
|
Fichiers de configuration :
|
|
Le fichier de configuration principal fournira les détails nécessaires
|
|
au déploiement de la nouvelle machine. Il doit se situer dans le
|
|
répertoire conf/ à coté du script init.sh. Si un fichier appelé
|
|
"hostname.sh" existe (ou hostname est le nom d'hote), alors il sera le
|
|
fichier de configuration principal. Dans le cas contraire, le nom
|
|
générique "init.conf.sh" sera recherché.
|
|
|
|
En l'absence de fichier de configuration ce script ne pourra pas
|
|
fonctionner.
|
|
|
|
Veuiller consulter les fichiers de configuration fournis en exemple
|
|
pour avoir un aperçu des paramêtres disponibles.
|
|
|
|
EOF
|
|
}
|
|
export -f disp_help
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Show version infos
|
|
show_version()
|
|
{
|
|
echo -e "${BWhite}init.sh${DEFAULTCOL} version ${BGreen}$VERSION${DEFAULTCOL}"
|
|
echo && separator && echo
|
|
echo "Available modules:"
|
|
|
|
local mod=
|
|
for mod in $MYPATH/modules/*.sh; do
|
|
# Ran in a subshell to not pollute environment
|
|
(
|
|
. $mod
|
|
local modname=$(get_mod_name $mod)
|
|
local version=VER_$modname
|
|
|
|
echo -e "\t$BWhite$modname${DEFAULTCOL}: $BGreen${!version}$DEFAULTCOL"
|
|
|
|
unset modname version
|
|
)
|
|
done
|
|
unset mod
|
|
|
|
if [[ $(id -u) -ne 0 ]]; then
|
|
echo -e "\n${BYellow}Warning:$DEFAULTCOL That script requires superuser rights to work."
|
|
fi
|
|
}
|
|
export -f show_version
|
|
|
|
# EOF
|