From 877b612c90ca4dfee67050894901e7e2f290960d Mon Sep 17 00:00:00 2001 From: unfr Date: Wed, 14 May 2025 19:35:49 +0200 Subject: [PATCH] ajout support sudo --- install.sh | 88 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 67 insertions(+), 21 deletions(-) diff --git a/install.sh b/install.sh index 000bdcb..04c44bb 100644 --- a/install.sh +++ b/install.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -euo pipefail # Couleurs de texte NOIR='\e[30m' ROUGE='\e[31m' @@ -26,11 +27,17 @@ CLIGNOTANT='\e[5m' INVERSE='\e[7m' NORMAL='\e[0m' -#Vérification des prérequis -echo -e "$BLEU""Vérification si les prérequis sont disponibles""$NORMAL" -LISTE_APPLIS="curl basename php" -BIN_DIR="$HOME/bin" -AUTOPOST_DIR="$HOME/autopost" + +# Initialisation +sudook=false + +if sudo -n true 2>/dev/null; then + # On peut faire sudo sans mot de passe (ticket sudo en cours ou NOPASSWD) + sudook=true +else + # Ni root ni sudo dispo + sudook=false +fi # Vérifier si le dossier bin existe, sinon le créer echo -e "$BLEU""Vérification de la présence du dossier bin""$NORMAL" @@ -38,17 +45,50 @@ if [ ! -d "$BIN_DIR" ]; then mkdir -p "$BIN_DIR" fi +#Vérification des prérequis +echo -e "$BLEU""Vérification si les prérequis sont disponibles""$NORMAL" +BIN_DIR="$HOME/bin" +AUTOPOST_DIR="$HOME/autopost" + LISTE_APPLIS=() +LISTE_APPLIS+=("curl basename php") # Vérifier et installer mediainfo si manquant if command -v mediainfo > /dev/null 2>&1; then LISTE_APPLIS+=("mediainfo") else - echo -e "${ROUGE}mediainfo est manquant. Installation en cours...${NORMAL}" - curl -L -o "$BIN_DIR/mediainfo" "https://mediaarea.net/download/binary/mediainfo/20.09/mediainfo-20.09.glibc2.3-x86_64.AppImage" - chmod 777 "$BIN_DIR/mediainfo" - LISTE_APPLIS+=("$BIN_DIR/mediainfo") - echo -e "${VERT}mediainfo installé dans $BIN_DIR${NORMAL}" + if $sudook; then + # URLs dans l’ordre souhaité + urls=( + "https://mediaarea.net/download/binary/libzen0/0.4.41/libzen0v5_0.4.41-1_amd64.Debian_12.deb" + "https://mediaarea.net/download/binary/libmediainfo0/25.04/libmediainfo0v5_25.04-1_amd64.Debian_12.deb" + "https://mediaarea.net/download/binary/mediainfo/25.04/mediainfo_25.04-1_amd64.Debian_12.deb" + ) + + # Télécharger + for url in "${urls[@]}"; do + wget -q "$url" + done + + # Extraire les noms de fichiers, dans le même ordre + files=("${urls[@]##*/}") + + # Installer dans l’ordre défini + for pkg in "${files[@]}"; do + sudo dpkg -i "$pkg" + done + + # Nettoyer + rm -f "${files[@]}" + LISTE_APPLIS+=("mediainfo") + echo -e "${VERT}mediainfo installé${NORMAL}" + else + echo -e "${ROUGE}mediainfo est manquant. Installation en cours...${NORMAL}" + curl -L -o "$BIN_DIR/mediainfo" "https://mediaarea.net/download/binary/mediainfo/20.09/mediainfo-20.09.glibc2.3-x86_64.AppImage" + chmod 777 "$BIN_DIR/mediainfo" + LISTE_APPLIS+=("$BIN_DIR/mediainfo") + echo -e "${VERT}mediainfo installé dans $BIN_DIR${NORMAL}" + fi fi # Vérifier et installer sqlite3 si manquant @@ -56,18 +96,22 @@ if command -v sqlite3 > /dev/null 2>&1; then LISTE_APPLIS+=("sqlite3") else echo -e "${ROUGE}sqlite3 est manquant. Installation en cours...${NORMAL}" - curl -L -o sqlite-tools.zip "https://www.sqlite.org/2025/sqlite-tools-linux-x64-3480000.zip" - unzip sqlite-tools.zip -d "$BIN_DIR" + if $sudook; then + sudo apt install sqlite3 + LISTE_APPLIS+=("sqlite3") + echo -e "${VERT}sqlite3 installé${NORMAL}" + else + curl -L -o sqlite-tools.zip "https://www.sqlite.org/2024/sqlite-tools-linux-x64-3470000.zip" + unzip sqlite-tools.zip -d "$BIN_DIR" + chmod 777 "$BIN_DIR/sqlite3" + + # Nettoyage des fichiers inutiles + rm -rf sqlite-tools.zip "$BIN_DIR/sqlite-tools-linux-x64-3480000" "$BIN_DIR/sqldiff" "$BIN_DIR/sqlite3_analyzer" "$BIN_DIR/sqlite3_rsync" + + LISTE_APPLIS+=("$BIN_DIR/sqlite3") + echo -e "${VERT}sqlite3 installé dans $BIN_DIR${NORMAL}" - # Recherche et déplacement du binaire sqlite3 uniquement - find "$BIN_DIR" -type f -name "sqlite3" -exec mv {} "$BIN_DIR/sqlite3" \; - chmod 777 "$BIN_DIR/sqlite3" - - # Nettoyage des fichiers inutiles - rm -rf sqlite-tools.zip "$BIN_DIR/sqlite-tools-linux-x64-3480000" "$BIN_DIR/sqldiff" "$BIN_DIR/sqlite3_analyzer" "$BIN_DIR/sqlite3_rsync" - - LISTE_APPLIS+=("$BIN_DIR/sqlite3") - echo -e "${VERT}sqlite3 installé dans $BIN_DIR${NORMAL}" + fi fi # Vérifier et installer jq si manquant @@ -308,3 +352,5 @@ fi echo "Suppression du script après exécution..." rm -- "$0" + +