diff --git a/install.sh b/install.sh index 6369b5a..ac15faf 100644 --- a/install.sh +++ b/install.sh @@ -1,110 +1,129 @@ #!/usr/bin/env sh -echo "=> DÉBUT de l'installation :" +# Fonctions d'affichage de messages d'erreur +error() { + printf "\x1b[31m$1\e[0m\n" + exit 1 +} +# Fonctions d'affichage de messages d'information +info() { + printf "$1\n" +} -echo "=> Validation des DÉPENDENCES pour l'installation :" -echo "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --" +# Fonctions d'affichage de messages d'avertissement +warn() { + printf "⚠️ \x1b[33m$1\e[0m\n" +} +# Affichage d'une ligne de séparation +line() { + printf "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --" +} + +# Fonction de validation de dépendance 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 } +# Fonction de validation de tous les dépendances validate_dependencies() { validate_dependency wget - echo "===> wget ... OK" + info "===> wget ... OK" validate_dependency unzip - echo "===> unzpip ... OK" + info "===> unzpip ... OK" validate_dependency sha256sum - echo "===> sha256sum ... OK" + info "===> sha256sum ... OK" +} + +# Fonction de téléchargement du logiciel +downloadSoftware() { + + wget -q https://git.bcmaison.cf/Outils/scut-reminder/raw/branch/main/scut-latest.zip + + # 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 + + # 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 + +} + +# Fonction de vérification du checksum du logiciel +checksumSoftware() { + + wget -q https://git.bcmaison.cf/Outils/scut-reminder/raw/branch/main/scut-latest.zip.sha256 + + # Extrait le checksum du fichier + CHECKSUM=$(cat scut-latest.zip.sha256 | awk '{ print $1 }') + + # Vérifie le checksum du fichier téléchargé + checksum_actuel=$(sha256sum scut-latest.zip | awk '{ print $1 }') + + if [ "$CHECKSUM" == "$checksum_actuel" ]; then + info "===> Checksum validé - Fichier intègre." + else + error "!! => Erreur de checksum - Fichier corrompu." + fi + +} + +# Fonction d'installation du logiciel +installSoftware() { + + # 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 + + # Désarchiver le zip dans ce dossier + unzip scut-latest.zip -d ~/.config/scut/ + + # 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 + } -# # Vérifie si wget est installé -# if ! hash wget 2>/dev/null; then -# echo " !! => wget n'est pas installé. Veuillez l'installer." -# exit 1 -# fi -# echo "===> wget ... OK" - -# # Vérifie si zip est installé -# if ! hash zip 2>/dev/null; then -# echo "zip n'est pas installé. Veuillez l'installer." -# exit 1 -# fi -# echo "===> zip ... OK" - -# # Vérifie si unzip est installé -# if ! hash unzip 2>/dev/null; then -# echo "unzip n'est pas installé. Veuillez l'installer." -# exit 1 -# fi -# echo "===> unzip ... OK" - -# # Vérifier si sha256sum est installé -# if ! hash sha256sum 2>/dev/null; then -# echo "sha256sum n'est pas installé. Veuillez l'installer." -# exit 1 -# fi -# echo "===> sha256sum ... OK" +# début du script +# ==--==--==--==--==--==--== +line +info "=> DÉBUT de l'installation :" +info "=> Validation des DÉPENDENCES pour l'installation :" +line +validate_dependencies # download scut-latest.zip -echo "=> TÉLÉCHARGEMENT du programme :" -echo "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --" -wget -q https://git.bcmaison.cf/Outils/scut-reminder/raw/branch/main/scut-latest.zip - -# Vérifie le code de retour de wget -if [ $? -eq 0 ]; then - echo "===> Téléchargement de scut-latest.zip réussi!" -else - echo "!! => Erreur lors du téléchargement." - exit 1 -fi - -# Vérifie que le fichier a bien été téléchargé -if [ -f "scut-latest.zip" ]; then - echo "===> Fichier scut-latest.zip téléchargé avec succès." -else - echo "!! => Échec du téléchargement du fichier scut-latest.zip." - exit 1 -fi +# ==--==--==--==--==--==--== +info "=> TÉLÉCHARGEMENT du programme :" +line # Télécharge le fichier de checksum -wget -q https://git.bcmaison.cf/Outils/scut-reminder/raw/branch/main/scut-latest.zip.sha256 - -# Extrait le checksum du fichier -CHECKSUM=$(cat scut-latest.zip.sha256 | awk '{ print $1 }') -echo $CHECKSUM - -# Vérifie le checksum du fichier téléchargé -checksum_actuel=$(sha256sum scut-latest.zip | awk '{ print $1 }') - -if [ "$CHECKSUM" == "$checksum_actuel" ]; then - echo "===> Checksum validé - Fichier intègre." -else - echo "!! => Erreur de checksum - Fichier corrompu." - exit 1 -fi +# ==--==--==--==--==--==--== +checksumSoftware # unzip scut-.zip in ~/.config/scut/ +# ==--==--==--==--==--==--== echo "=> INSTALLATION du programme :" -echo "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --" - -# 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 -fi - -# Désarchiver le zip dans ce dossier -unzip scut-latest.zip -d ~/.config/scut/ - -# 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 +line +installSoftware +# Fin du script +# ==--==--==--==--==--==--== echo "=> FIN de l'installation ! :-)" +line