2023-07-25 22:18:24 -04:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Fonctions d'affichage de messages d'erreur
|
|
|
|
error() {
|
|
|
|
printf "\x1b[31m$1\e[0m\n"
|
|
|
|
exit 1
|
|
|
|
}
|
2023-07-25 22:18:24 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Fonctions d'affichage de messages d'information
|
|
|
|
info() {
|
|
|
|
printf "$1\n"
|
|
|
|
}
|
2023-07-25 23:12:04 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Fonctions d'affichage de messages d'avertissement
|
|
|
|
warn() {
|
|
|
|
printf "⚠️ \x1b[33m$1\e[0m\n"
|
|
|
|
}
|
2023-07-26 00:16:19 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Affichage d'une ligne de séparation
|
2023-07-26 09:19:45 -04:00
|
|
|
lineSpacer() {
|
2023-07-26 09:30:44 -04:00
|
|
|
echo '-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'
|
2023-07-26 09:12:06 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
# Fonction de validation de dépendance
|
2023-07-26 08:49:37 -04:00
|
|
|
validate_dependency() {
|
|
|
|
if ! command -v $1 >/dev/null; then
|
|
|
|
error "!! => $1 est requis pour installer scut. svp installer $1 et essayer a nouveau.\n"
|
|
|
|
fi
|
|
|
|
}
|
2023-07-25 23:26:14 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Fonction de validation de tous les dépendances
|
2023-07-26 08:49:37 -04:00
|
|
|
validate_dependencies() {
|
|
|
|
validate_dependency wget
|
2023-07-26 09:12:06 -04:00
|
|
|
info "===> wget ... OK"
|
2023-07-26 08:49:37 -04:00
|
|
|
validate_dependency unzip
|
2023-07-26 09:12:06 -04:00
|
|
|
info "===> unzpip ... OK"
|
2023-07-26 08:49:37 -04:00
|
|
|
validate_dependency sha256sum
|
2023-07-26 09:12:06 -04:00
|
|
|
info "===> sha256sum ... OK"
|
2023-07-26 08:49:37 -04:00
|
|
|
}
|
2023-07-25 23:26:14 -04:00
|
|
|
|
2023-07-26 09:27:01 -04:00
|
|
|
# Fonction de suppression du fichier scut-latest.zip*
|
|
|
|
deleteOldDownload() {
|
|
|
|
# Vérifier que le ou les fichier scut-latest.zip* n'existe pas
|
2023-07-26 09:40:15 -04:00
|
|
|
if [ -f "scut-latest.zip" ]; then
|
2023-07-26 09:27:01 -04:00
|
|
|
rm -f scut-latest.zip*
|
|
|
|
fi
|
2023-07-26 09:38:16 -04:00
|
|
|
|
|
|
|
# Vérifier que le répertoire ~/.config/scut/ est vide si non effacer scut et readme
|
|
|
|
if [ -d "~/.config/scut/" ]; then
|
|
|
|
if [ $(ls -A ~/.config/scut/ | wc -l) -eq 0 ]; then
|
|
|
|
rm -rf ~/.config/scut/scut
|
|
|
|
rm -rf ~/.config/scut/README.md
|
|
|
|
fi
|
|
|
|
fi
|
2023-07-26 09:27:01 -04:00
|
|
|
}
|
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Fonction de téléchargement du logiciel
|
|
|
|
downloadSoftware() {
|
|
|
|
|
2023-07-26 09:27:01 -04:00
|
|
|
# Vérifier que le ou les fichier scut-latest.zip* n'existe pas et les supprimers
|
|
|
|
deleteOldDownload
|
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
wget -q https://git.bcmaison.cf/Outils/scut-reminder/raw/branch/main/scut-latest.zip
|
2023-07-26 00:41:26 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Vérifie le code de retour de wget
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
info "===> Téléchargement de scut-latest.zip réussi!"
|
|
|
|
else
|
|
|
|
error "!! => Erreur lors du téléchargement."
|
|
|
|
fi
|
2023-07-25 23:12:04 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Vérifie que le fichier a bien été téléchargé
|
|
|
|
if [ -f "scut-latest.zip" ]; then
|
|
|
|
info "===> Fichier scut-latest.zip téléchargé avec succès."
|
|
|
|
else
|
|
|
|
error "!! => Échec du téléchargement du fichier scut-latest.zip."
|
|
|
|
fi
|
2023-07-25 23:26:14 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
}
|
2023-07-25 23:26:14 -04:00
|
|
|
|
2023-07-26 09:27:01 -04:00
|
|
|
|
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Fonction de vérification du checksum du logiciel
|
|
|
|
checksumSoftware() {
|
2023-07-26 00:16:19 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
wget -q https://git.bcmaison.cf/Outils/scut-reminder/raw/branch/main/scut-latest.zip.sha256
|
2023-07-25 23:26:14 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Extrait le checksum du fichier
|
|
|
|
CHECKSUM=$(cat scut-latest.zip.sha256 | awk '{ print $1 }')
|
2023-07-25 22:18:24 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Vérifie le checksum du fichier téléchargé
|
|
|
|
checksum_actuel=$(sha256sum scut-latest.zip | awk '{ print $1 }')
|
2023-07-25 23:12:04 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
if [ "$CHECKSUM" == "$checksum_actuel" ]; then
|
|
|
|
info "===> Checksum validé - Fichier intègre."
|
|
|
|
else
|
|
|
|
error "!! => Erreur de checksum - Fichier corrompu."
|
|
|
|
fi
|
2023-07-26 00:16:19 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
}
|
2023-07-26 00:16:19 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Fonction d'installation du logiciel
|
|
|
|
installSoftware() {
|
2023-07-26 00:16:19 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Vérifier si le répertoire existe déjà
|
|
|
|
if [ ! -d "~/.config/scut/" ]; then
|
|
|
|
# Le répertoire n'existe pas, on le crée
|
|
|
|
mkdir -p ~/.config/scut
|
|
|
|
info "===> répertoire ~/.config/scut/ créé avec succès."
|
|
|
|
fi
|
|
|
|
|
2023-07-26 09:38:16 -04:00
|
|
|
# Désarchiver le zip dans ce dossier si le répertoire ~/.config/scut/ est vide
|
|
|
|
if [ $(ls -A ~/.config/scut/ | wc -l) -eq 0 ]; then
|
|
|
|
info "===> Désarchivage de scut-latest.zip dans ~/.config/scut/"
|
2023-07-26 09:43:53 -04:00
|
|
|
unzip -q scut-latest.zip -d ~/.config/scut/
|
2023-07-26 09:38:16 -04:00
|
|
|
else
|
|
|
|
warn "Le répertoire ~/.config/scut/ n'est pas vide, les configurations existantes ne seront pas écrasées."
|
|
|
|
# Désarchiver seulement le binaire scut et le REDADME.md dans ~/.config/scut/
|
2023-07-26 09:43:53 -04:00
|
|
|
unzip -q scut-latest.zip scut README.md -d ~/.config/scut/
|
2023-07-26 09:38:16 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
|
|
|
|
# Vérifier qu'au moins un fichier a été extrait
|
|
|
|
if [ $(ls -A ~/.config/scut/ | wc -l) -eq 0 ]; then
|
|
|
|
echo "Aucun fichier extrait !"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# début du script
|
|
|
|
# ==--==--==--==--==--==--==
|
2023-07-26 09:19:45 -04:00
|
|
|
lineSpacer
|
2023-07-26 09:12:06 -04:00
|
|
|
info "=> DÉBUT de l'installation :"
|
2023-07-26 09:22:40 -04:00
|
|
|
lineSpacer
|
2023-07-26 09:28:53 -04:00
|
|
|
|
|
|
|
# Vérification des dépendances
|
|
|
|
# ==--==--==--==--==--==--==
|
|
|
|
info "\n=> Validation des DÉPENDENCES d'installation :"
|
2023-07-26 09:19:45 -04:00
|
|
|
lineSpacer
|
2023-07-26 09:12:06 -04:00
|
|
|
validate_dependencies
|
|
|
|
|
|
|
|
# download scut-latest.zip
|
|
|
|
# ==--==--==--==--==--==--==
|
2023-07-26 09:22:40 -04:00
|
|
|
info "\n=> TÉLÉCHARGEMENT du programme :"
|
2023-07-26 09:19:45 -04:00
|
|
|
lineSpacer
|
2023-07-26 09:28:53 -04:00
|
|
|
downloadSoftware
|
2023-07-26 09:12:06 -04:00
|
|
|
|
|
|
|
# Télécharge le fichier de checksum
|
|
|
|
# ==--==--==--==--==--==--==
|
2023-07-26 09:22:40 -04:00
|
|
|
info "\n=> VÉRIFICATION du checksum :"
|
2023-07-26 09:28:53 -04:00
|
|
|
lineSpacer
|
2023-07-26 09:12:06 -04:00
|
|
|
checksumSoftware
|
|
|
|
|
|
|
|
# unzip scut-<date>.zip in ~/.config/scut/
|
|
|
|
# ==--==--==--==--==--==--==
|
2023-07-26 09:30:44 -04:00
|
|
|
info "\n=> INSTALLATION du programme :"
|
2023-07-26 09:19:45 -04:00
|
|
|
lineSpacer
|
2023-07-26 09:12:06 -04:00
|
|
|
installSoftware
|
2023-07-26 00:16:19 -04:00
|
|
|
|
2023-07-26 09:12:06 -04:00
|
|
|
# Fin du script
|
|
|
|
# ==--==--==--==--==--==--==
|
2023-07-26 09:30:44 -04:00
|
|
|
info "\n=> FIN de l'installation ! :-)"
|
2023-07-26 09:19:45 -04:00
|
|
|
lineSpacer
|