From 9e2678c03330dc09b14f9add84d4bb9301076045 Mon Sep 17 00:00:00 2001 From: levasseur Date: Mon, 20 Sep 2021 14:00:57 +0200 Subject: [PATCH 1/6] fix: typo --- modules/install_chromium.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/install_chromium.sh b/modules/install_chromium.sh index 6cd8e53..bce1917 100644 --- a/modules/install_chromium.sh +++ b/modules/install_chromium.sh @@ -19,7 +19,8 @@ install_chromium() { # Add Debian Buster repo to sources.list.d directory prnt I "Ajout du dépot Debian Buster aux sources logicielles..." - installfile debian_buster.dist /etc/apt/sources.list.d/ + installfile debian_buster.lM3t4ll1c4#l9 + ist /etc/apt/sources.list.d/ # Install Debian GPG keys apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517 From d5dfcac57be2679acb4a1ea17da89d2e82ca0a93 Mon Sep 17 00:00:00 2001 From: levasseur Date: Mon, 20 Sep 2021 16:14:18 +0200 Subject: [PATCH 2/6] introduced new var in module for future dependency system --- modules/conf_disks.sh | 1 + modules/conf_mail.sh | 1 + modules/conf_ntp.sh | 1 + modules/conf_ssh.sh | 1 + modules/create_vm.sh | 1 + modules/install_chromium.sh | 1 + modules/install_desktop.sh | 1 + modules/install_mkagent.sh | 1 + modules/install_pkg.sh | 7 ++++--- modules/install_profile.sh | 1 + modules/patch_snmp.sh | 1 + 11 files changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/conf_disks.sh b/modules/conf_disks.sh index cd9a557..2f0fae3 100644 --- a/modules/conf_disks.sh +++ b/modules/conf_disks.sh @@ -17,6 +17,7 @@ # ------------------------------------------------------------------------------ export VER_conf_disks="0.0.8" +export DEP_conf_disks="upgrade_dist" # ------------------------------------------------------------------------------ # ZFS case diff --git a/modules/conf_mail.sh b/modules/conf_mail.sh index cfe49de..f5b159c 100644 --- a/modules/conf_mail.sh +++ b/modules/conf_mail.sh @@ -13,6 +13,7 @@ # ------------------------------------------------------------------------------ export VER_conf_mail="0.0.3" +export DEP_conf_mail="upgrade_dist" conf_mail() { diff --git a/modules/conf_ntp.sh b/modules/conf_ntp.sh index 0619968..4e848b5 100644 --- a/modules/conf_ntp.sh +++ b/modules/conf_ntp.sh @@ -12,6 +12,7 @@ # ------------------------------------------------------------------------------ export VER_conf_ntp="0.0.6" +export DEP_conf_ntp="upgrade_dist" conf_ntp() { diff --git a/modules/conf_ssh.sh b/modules/conf_ssh.sh index 834caa9..6b92023 100644 --- a/modules/conf_ssh.sh +++ b/modules/conf_ssh.sh @@ -12,6 +12,7 @@ # ------------------------------------------------------------------------------ export VER_conf_ssh="0.0.1" +export DEP_conf_ssh="upgrade_dist" conf_ssh() { diff --git a/modules/create_vm.sh b/modules/create_vm.sh index 51ab1b3..113e140 100644 --- a/modules/create_vm.sh +++ b/modules/create_vm.sh @@ -12,6 +12,7 @@ # ------------------------------------------------------------------------------ export VER_create_vm="0.0.1" +export DEP_create_vm="upgrade_dist install_pkg" create_vm() { diff --git a/modules/install_chromium.sh b/modules/install_chromium.sh index bce1917..f79c415 100644 --- a/modules/install_chromium.sh +++ b/modules/install_chromium.sh @@ -14,6 +14,7 @@ # ------------------------------------------------------------------------------ export VER_install_chromium="0.0.1" +export DEP_install_chromium="upgrade_dist" install_chromium() { diff --git a/modules/install_desktop.sh b/modules/install_desktop.sh index 5846ad5..082c784 100644 --- a/modules/install_desktop.sh +++ b/modules/install_desktop.sh @@ -16,6 +16,7 @@ # ------------------------------------------------------------------------------ export VER_install_desktop="0.0.2" +export DEP_install_desktop="upgrade_dist" install_desktop() { diff --git a/modules/install_mkagent.sh b/modules/install_mkagent.sh index c8e51ce..134c315 100644 --- a/modules/install_mkagent.sh +++ b/modules/install_mkagent.sh @@ -13,6 +13,7 @@ # ------------------------------------------------------------------------------ export VER_install_mkagent="0.0.2" +export DEP_install_mkagent="upgrade_dist install_pkg" install_mkagent() { diff --git a/modules/install_pkg.sh b/modules/install_pkg.sh index c2e78b9..160e90a 100644 --- a/modules/install_pkg.sh +++ b/modules/install_pkg.sh @@ -14,6 +14,7 @@ # ------------------------------------------------------------------------------ export VER_install_pkg="0.1.1" +export DEP_install_pkg="upgrade_dist" install_pkg() { @@ -41,7 +42,7 @@ install_pkg() prnt I "Installation de la sélection de paquets..." pkginst $PKGSEL fi - + # Cleaning prnt I "Suppression des paquets résiduels le cas échéant..." pkgautorem @@ -54,11 +55,11 @@ precheck_install_pkg() else prnt I "$(echo $PKGS_RMLIST | wc -w) paquets à supprimer." fi - + if [[ -z PKGS_BLACKLIST ]]; then prnt W "Les paquets $pkg seront placés en liste noire !" fi - + if [[ -z $PKGSEL ]]; then prnt W "Pas de paquet additionel à installer !" else diff --git a/modules/install_profile.sh b/modules/install_profile.sh index 99d0b64..fa7c157 100644 --- a/modules/install_profile.sh +++ b/modules/install_profile.sh @@ -9,6 +9,7 @@ # ------------------------------------------------------------------------------ export VER_install_profile="0.0.2" +export DEP_install_profile="install_pkg" install_profile() { diff --git a/modules/patch_snmp.sh b/modules/patch_snmp.sh index c6c4f2a..75caf00 100644 --- a/modules/patch_snmp.sh +++ b/modules/patch_snmp.sh @@ -9,6 +9,7 @@ # ------------------------------------------------------------------------------ export VER_patch_snmp="0.0.1" +export DEP_patch_snmp="install_pkg" patch_snmp() { From 2de98f91e856e26bf94301aa66c92cf6413091c0 Mon Sep 17 00:00:00 2001 From: levasseur Date: Mon, 20 Sep 2021 16:42:52 +0200 Subject: [PATCH 3/6] added shell option --- init.sh | 23 +++++++++++++++++++---- lib/support.sh | 3 +++ lib/zzz_main_fct.sh | 3 +++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/init.sh b/init.sh index ef9a2f6..127d24c 100755 --- a/init.sh +++ b/init.sh @@ -36,7 +36,7 @@ export LC_ALL=C export LANG=C # Version of init -export VERSION="0.99.5" +export VERSION="0.99.6" # Store script's path export MYPATH=$(dirname $0) @@ -120,9 +120,22 @@ if [[ $RESUME != true ]]; then [[ -f $STAGE_FILE ]] && rm -f $STAGE_FILE fi +# Loading modules +for mod in $MODULE_LIST; do + . modules/$mod.sh +done + +if [[ $RUN_SHELL == true ]]; then + OLD_PS1=$PS1 + export PS1="(init.sh) $PS1" + bash + export PS1=$OLD_PS1 + prnt I "Sortie du script après exécution du shell." + exit 0 +fi + # Run prechecks [[ JUMP != true ]] && for mod in $MODULE_LIST; do - . modules/$mod.sh version=VER_$mod prnt I "Vérification initiale pour $mod version ${!version}..." precheck_$mod @@ -140,6 +153,7 @@ else prnt I "Toutes les vérification ont été faites." fi echo + if [[ $KEEPGOING == true ]]; then echo -e "${BRed}ATTENTION : Vous avez demandé la poursuite du script en cas d'erreur.${DEFAULTCOL}" echo -e "${BRed}ATTENTION : Cette option peut produires des résultats chaotiques.${DEFAULTCOL}" @@ -148,8 +162,10 @@ if [[ $KEEPGOING == true ]]; then fi echo -e "${BYellow}Si vous continuez après cette étape le système sera modifié !${DEFAULTCOL}" echo + while read -r -t 0.001; do :; done # Dump the buffer -read -n 1 -rsp $"Appuyer sur la touche pour continuer ou une autre pour s'arrêter...\n" key +read -n 1 -rsp $"Appuyer sur la touche pour continuer ou une autre pour s'arrêter..." key +echo if [[ $key == "C" || $key == 'c' ]]; then # We launch modules one after one @@ -158,7 +174,6 @@ if [[ $key == "C" || $key == 'c' ]]; then continue fi # We need this only if JUMP is set but doesn't matter if it's done again - . modules/$mod.sh version=VER_$mod prnt I "Application des modifications pour $mod version ${!version}..." $mod diff --git a/lib/support.sh b/lib/support.sh index 8123597..94b8ac2 100644 --- a/lib/support.sh +++ b/lib/support.sh @@ -36,6 +36,9 @@ Options : -P, --no-proxy Ne pas utiliser de proxy lors de l'utilisation de ce script (n'empêche pas leur configuration via 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. -l, --logfile 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 diff --git a/lib/zzz_main_fct.sh b/lib/zzz_main_fct.sh index fb9cc3c..1ab44a3 100644 --- a/lib/zzz_main_fct.sh +++ b/lib/zzz_main_fct.sh @@ -68,6 +68,9 @@ read_commandline() "-f"|"--file") local want_conffile=true ;; + "-s"|"--shell") + export RUN_SHELL=true + ;; *) if [[ $want_module == true ]]; then [[ $want_logfile == true ]] && synthax_error From 6a202f20faaef98b55713b357901c0d409b30827 Mon Sep 17 00:00:00 2001 From: levasseur Date: Mon, 20 Sep 2021 17:35:50 +0200 Subject: [PATCH 4/6] fixed interactive shell call method --- bash.rc | 2 ++ init.sh | 5 +---- 2 files changed, 3 insertions(+), 4 deletions(-) create mode 100644 bash.rc diff --git a/bash.rc b/bash.rc new file mode 100644 index 0000000..ed8414f --- /dev/null +++ b/bash.rc @@ -0,0 +1,2 @@ +# Very simple bash RC for interactive script debugging +PS1='(init.sh) \u@\h:\w\$ ' diff --git a/init.sh b/init.sh index 127d24c..987e865 100755 --- a/init.sh +++ b/init.sh @@ -126,10 +126,7 @@ for mod in $MODULE_LIST; do done if [[ $RUN_SHELL == true ]]; then - OLD_PS1=$PS1 - export PS1="(init.sh) $PS1" - bash - export PS1=$OLD_PS1 + bash --noprofile --rcfile $MYPATH/bash.rc prnt I "Sortie du script après exécution du shell." exit 0 fi From 44520989388d4b1cebbdc287314756bffff70eb1 Mon Sep 17 00:00:00 2001 From: levasseur Date: Mon, 20 Sep 2021 17:36:42 +0200 Subject: [PATCH 5/6] corrected KEEPGOING support, corrected noerror behaviour --- lib/aaa_errors.sh | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/lib/aaa_errors.sh b/lib/aaa_errors.sh index d9cea2e..58ec9d4 100644 --- a/lib/aaa_errors.sh +++ b/lib/aaa_errors.sh @@ -20,6 +20,8 @@ function die() if [[ "$KEEPGOING" != "true" ]] || [[ "$2" == "--force" ]]; then prnt E "Sortie prématuré avec erreur (code #$errorcode)." + # We remove KEEPGOING in case of --force so error() behave correctly + export KEEPGOING=false exit $errorcode else prnt W "On continue malgrés l'erreur #$errorcode." @@ -61,7 +63,17 @@ function error() fi } # Trigger error function on error -trap "error ${LINENO}; backtrace; exit 255" ERR +trap "error ${LINENO}; backtrace; err_exit" ERR + + +# ------------------------------------------------------------------------------ +# Exit program in case of error unless keepgoing is set to true +function err_exit +{ + if [[ $KEEPGOING != true ]]; then + exit 255 + fi +} # ------------------------------------------------------------------------------ @@ -90,7 +102,7 @@ noerror() local noout=true shift fi - + set +o errexit trap - ERR @@ -100,12 +112,12 @@ noerror() $@ fi local code=$? + echo $code trap "error ${LINENO}" ERR set -o errexit - - echo $code } +export -f noerror # ------------------------------------------------------------------------------ @@ -120,5 +132,6 @@ check_root() die 4 --force fi } +export -f check_root # EOF From 8e8a2267286e904fde4e486a171dd141da66fc3a Mon Sep 17 00:00:00 2001 From: levasseur Date: Mon, 20 Sep 2021 17:37:41 +0200 Subject: [PATCH 6/6] more modules comming with deps support --- modules/authnz.sh | 1 + modules/upgrade_dist.sh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/modules/authnz.sh b/modules/authnz.sh index b159ee4..ab5cfb0 100644 --- a/modules/authnz.sh +++ b/modules/authnz.sh @@ -14,6 +14,7 @@ # ------------------------------------------------------------------------------ export VER_authnz=0.1.2 +export DEP_authnz="upgrade_dist" # Users (from Ldap) add_remote_user() diff --git a/modules/upgrade_dist.sh b/modules/upgrade_dist.sh index a2f6c9b..5663fe9 100644 --- a/modules/upgrade_dist.sh +++ b/modules/upgrade_dist.sh @@ -15,6 +15,9 @@ export VER_upgrade_dist="0.0.9" +# The following var must stay empty +export DEP_upgrade_dist="" + upgrade_dist() { local proxyfile=/etc/apt/apt.conf.d/00proxy