diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..203e3fb --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +log + diff --git a/conf/init.conf.sh b/conf/init.conf.sh index 3f0f12a..0c08ce1 100644 --- a/conf/init.conf.sh +++ b/conf/init.conf.sh @@ -54,10 +54,10 @@ export CALCLEVEL="" # Liste de lecteurs à utiliser (voir dans /dev/disk/by-id) # Un seul tolléré pour Ext4 et XFS, plusieurs séparés par des espaces pour ZFS -export CALCDRV="/dev/disk/by-id/usb-Lexar_USB_Flash_Drive_AA21C16SSC0UGHKE77XZ-0:0" +export CALCDRV="/dev/disk/by-id/ata-ST2000DM008-2FR102_ZFL3AGRQ" # Doit on forcer l'effacement du disque ? -export FORCEBLANK="no" +export FORCEBLANK=false # ------------------------------------------------------------------------------ # -------------------------- Section modules d'init ---------------------------- diff --git a/init.sh b/init.sh index 79837c3..fb2497a 100755 --- a/init.sh +++ b/init.sh @@ -11,6 +11,9 @@ set -o errtrace # set -e : exit the script if any statement returns a non-true return value set -o errexit +# set +u : allow undeclared variables +set +o nounset + export VERSION="0.95.1" # Stocke le chemin du script @@ -96,6 +99,8 @@ show_version() local version=VER_$modname echo -e "\t$BWhite$modname${DEFAULTCOL}: $BGreen${!version}$DEFAULTCOL" done + [[ $EUID -ne 0 ]] && + echo -e "\n${BYellow}Attention :$DEFAULTCOL Ce script requiert les droits d'administration pour fonctionner." } # Get module name from module file @@ -169,8 +174,8 @@ done # À ce stade on vérifie qu'on soit root # (--help et --version sont autorisés en user normal) if [[ $EUID -ne 0 ]]; then - prnt E "Ce script doit être démarré en tant que root. Arrêt." - die 1 --force + prnt E "Ce script doit être démarré en tant que root. Arrêt." + die 1 --force fi # Variables globales importantes @@ -242,4 +247,4 @@ fi done prnt I "That's all folks !" -echo "Après vérification des logs, vous devriez redémarrer la machine..." +#echo "Après vérification des logs, vous devriez redémarrer la machine..." diff --git a/lib/display.sh b/lib/display.sh index bbcf3c6..ed51653 100644 --- a/lib/display.sh +++ b/lib/display.sh @@ -76,7 +76,8 @@ export On_ICyan='\e[0;106m' export On_IWhite='\e[0;107m' # Affiche le status avec en-tête coloré et timestamp -# (valeur de $1 : I=info, W=warning, E=error, pas d'entête si différent) +# (valeur de $1 : I=info, W=warning, E=error, m=des espaces (allignement) +# pas d'entête si autre) prnt() { case $1 in "I") @@ -91,6 +92,10 @@ prnt() { HEADS="[ ${IRed}ERREUR${DEFAULTFG} ]" shift ;; + "m") + HEADS=" " + shift + ;; esac echo -e "${IWhite}$(date $DATEFORMAT)${DEFAULTFG} ${HEADS} $@" } diff --git a/modules/conf_disks.sh b/modules/conf_disks.sh index 59817a4..78727c8 100644 --- a/modules/conf_disks.sh +++ b/modules/conf_disks.sh @@ -1,6 +1,6 @@ # Configuration du disque de calcul -export VER_conf_disks="0.0.5" +export VER_conf_disks="0.0.6" # ------------------------------------------------------------------------------ # Cas de ZFS @@ -17,7 +17,7 @@ conf_zfs() # Chargement du module et vérification modprobe zfs || ( prnt E "Échec de chargement du module noyau, abandon." - return 2 + die 2 ) sleep 1 @@ -42,7 +42,7 @@ conf_zfs() fi else prnt E "Erreur de création du pool zcalc ($CALCLEVEL) avec les disques $CALCDRV" - return 3 + die 3 fi } @@ -103,10 +103,10 @@ precheck_conf_disks() for drv in $CALCDRV; do if [[ -e $drv ]]; then if [[ $(/sbin/sfdisk -d $drv 2>&1) == "" ]]; then - prnt I "Le dique $drv est vierge." + prnt I "Le dique $drv est vierge, il sera formaté en $CALCTYPE." else prnt W "Le disque $drv n'est pas vierge !" - if [[ $FORCEBLANK=="true" ]]; then + if [[ $FORCEBLANK==true ]]; then prnt W "Le disque $drv sera réinitialisé !" else prnt E "La réinitialisation de $drv n'est pas autorisé, rien ne sera fait !" diff --git a/modules/conf_locale.sh b/modules/conf_locale.sh index ec3c555..5fbfb3e 100644 --- a/modules/conf_locale.sh +++ b/modules/conf_locale.sh @@ -1,6 +1,7 @@ # Locale -export VER_conf_locale="0.0.2" +export VER_conf_locale="0.0.3 +" conf_locale() { @@ -26,8 +27,17 @@ conf_locale() precheck_conf_locale() { - [[ ! -z $LOCALESET ]] && prnt W "Aucune locale définie !" - [[ ! -z $SYSLOCALE ]] && prnt W "Pas de locale systême définie, C sera utilié." + if [[ -z $LOCALESET ]]; then + prnt W "Aucune locale définie !" + else + prnt m "Les locales disponibles seront : $LOCALESET" + fi + + if [[ -z $SYSLOCALE ]]; then + prnt W "Pas de locale systême définie, C sera utilié." + export SYSLOCALE="C" + fi + prnt m "La locale par défaut sera : $SYSLOCALE" } export -f conf_locale diff --git a/modules/conf_ntp.sh b/modules/conf_ntp.sh index 65ded9e..bbb6b81 100644 --- a/modules/conf_ntp.sh +++ b/modules/conf_ntp.sh @@ -1,6 +1,6 @@ # NTP -export VER_conf_ntp="0.0.3" +export VER_conf_ntp="0.0.4" conf_ntp() { @@ -33,9 +33,11 @@ conf_ntp() # NTP precheck_conf_ntp() { - if [[ ! $NTPSERVERS ]]; then + if [[ -z $NTPSERVERS ]]; then prnt E "Pas de serveur NTP configuré !" die 5 + else + prnt m "Les serveurs ntp utilisés seront : $NTPSERVERS" fi } diff --git a/modules/install_desktop.sh b/modules/install_desktop.sh index 3db73bc..0b8e692 100644 --- a/modules/install_desktop.sh +++ b/modules/install_desktop.sh @@ -1,7 +1,7 @@ # Install desktop environment -- Ubuntu only # Debian version might ask for task-$FLAVOR -export VER_install_desktop="0.0.1" +export VER_install_desktop="0.0.2" install_desktop() { @@ -15,8 +15,14 @@ install_desktop() precheck_install_desktop() { - [[ ! $UBUNTU_FLAVOR ]] && prnt W "Pas de saveur Ubuntu choisie, aucun environnement de bureau ne sera installé !" - [[ $X11_DRV ]] && prnt W "Des pilotes non libres seront installé." + if [[ -z $UBUNTU_FLAVOR ]]; then + prnt W "Pas de saveur Ubuntu choisie, aucun environnement de bureau ne sera installé !" + else + prnt m "La saveur $UBUNTU_FLAVOR sera installée..." + fi + if [[ -n $X11_DRV ]]; then + prnt W "Des pilotes non libres seront installé." + fi } export -f install_desktop diff --git a/modules/install_pkg.sh b/modules/install_pkg.sh index 4f21a90..375fc7a 100644 --- a/modules/install_pkg.sh +++ b/modules/install_pkg.sh @@ -1,6 +1,6 @@ # Installation des paquets -export VER_install_pkg="0.0.1" +export VER_install_pkg="0.0.2" install_pkg() { @@ -11,7 +11,11 @@ install_pkg() precheck_install_pkg() { - [[ ! $PKGSEL ]] && prnt W "Pas de paquet additionel à installer !" + if [[ -z $PKGSEL ]]; then + prnt W "Pas de paquet additionel à installer !" + else + prnt I "$(echo $PKGSEL | wc -w) paquets additionels seront installés" + fi } export -f install_pkg diff --git a/modules/upgrade_dist.sh b/modules/upgrade_dist.sh index 3eb0319..14c26cb 100644 --- a/modules/upgrade_dist.sh +++ b/modules/upgrade_dist.sh @@ -1,6 +1,6 @@ # Module mise à jour de la distribution -export VER_upgrade_dist="0.0.3" +export VER_upgrade_dist="0.0.4" upgrade_dist() { @@ -39,10 +39,10 @@ precheck_upgrade_dist() prnt E "Réseau non fonctionnel ! Abandon." die 5 fi - [[ -z $PROXYAPT && ! -z $PROXYAPTPORT ]] && ( + if [[ -n $PROXYAPT && -z $PROXYAPTPORT ]]; then prnt E "Un serveur proxy a été spécifié mais pas son port d'usage." die 5 - ) + fi }