diff --git a/install.sh b/install.sh index 1015b259..b4febea6 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,13 @@ #!/usr/bin/env bash +# Colors for better overview +GREEN='\033[0;32m' +BLUE='\033[1;34m' +YELLOW='\033[1;33m' +RED='\033[1;31m' +NORMAL='\033[0;39m' + + INSTALLATION_PATH="/opt/myspeed" RELEASE_URL=$(curl -s https://api.github.com/repos/gnmyt/myspeed/releases/latest | grep browser_download_url | cut -d '"' -f 4) @@ -9,13 +17,16 @@ log () { # Root check if [ $EUID -ne 0 ]; then - echo "Du musst dieses Skript als root ausführen" + echo "$RED ✗ Fehler bei der Installation: $NORMAL Du benötigst Root-Rechte, um die Installation zu starten." + echo "$BLUE Die Root-Abfrage wird ausgeführt, bitte gib das dazugehörige Passwort ein. Die Installation wird dann automatisch neu gestartet. Um abzubrechen, drücke STRG+C." + sudo -s + curl -sSL https://raw.githubusercontent.com/gnmyt/myspeed/release/install.sh | bash exit fi # Check if installed if [ -d $INSTALLATION_PATH ]; then - log "Eine MySpeed-Instanz unter $INSTALLATION_PATH wurde bereits installiert. Die Installation wird abgebrochen." + echo "$YELLOW ⚠ Fehler bei der Installation: $NORMAL MySpeed ist bereits auf diesem System installiert. ($INSTALLATION_PATH)" exit 0 fi @@ -23,63 +34,77 @@ fi # Update all packages apt-get update -y +clear +echo "$GREENℹ Info:$NORMAL Die Installation wird jetzt vorbereitet. Das kann einen Augenblick dauern..." +sleep 5 # Check for wget +clear +echo "$BLUE🔎 Status:$NORMAL Überprüfe, ob wget vorhanden ist..." if ! command -v wget &> /dev/null then - log "Das Paket \"wget\" wurde nicht gefunden, wird aber benötigt. Es wird nun installiert..." + echo "$YELLOWℹ\"wget\" ist nicht installiert.$NORMAL Die Installation wurde gestartet..." sleep 2 apt-get install wget -y fi # Check for unzip +clear +echo "$BLUE🔎 Status:$NORMAL Überprüfe, ob unzip vorhanden ist..." if ! command -v unzip &> /dev/null then - log "Das Paket \"unzip\" wurde nicht gefunden, wird aber benötigt. Es wird nun installiert..." + echo "$YELLOWℹ\"unzip\" ist nicht installiert.$NORMAL Die Installation wurde gestartet..." sleep 2 apt-get install unzip -y fi # Check for curl +clear +echo "$BLUE 🔎 Status:$NORMAL Überprüfe, ob curl vorhanden ist..." if ! command -v curl &> /dev/null then - log "Das Paket \"curl\" wurde nicht gefunden, wird aber benötigt. Es wird nun installiert..." + echo "$YELLOWℹ\"curl\" ist nicht installiert.$NORMAL Die Installation wurde gestartet..." sleep 2 apt-get install curl -y fi # Check for node +clear +echo "$BLUE 🔎 Status:$NORMAL Überprüfe, ob node vorhanden ist..." if ! command -v node &> /dev/null then - log "Das Paket \"nodejs\" wurde nicht gefunden, wird aber benötigt. Es wird nun installiert..." + echo "$YELLOWℹ\"node\" ist nicht installiert.$NORMAL Die Installation wurde gestartet..." sleep 2 curl -sSL https://deb.nodesource.com/setup_16.x | bash apt-get install nodejs -y fi -log "Alle notwendigen Pakete sind installiert. Starte installation von MySpeed..." -sleep 2 +clear +echo "$GREEN✓ Vorbereitung abgeschlossen:$NORMAL Die Installation von MySpeed wird jetzt gestartet..." +sleep 5 +clear if [ ! -d $INSTALLATION_PATH ] then - log "MySpeed wird unter $INSTALLATION_PATH installiert. Der Ordner wird nun erstellt." + echo "$BLUEℹ Info: $NORMAL MySpeed wird unter dem Verzeichnis $INSTALLATION_PATH installiert. Der Ordner wird nun erstellt." sleep 2 mkdir $INSTALLATION_PATH fi cd $INSTALLATION_PATH -log "Lade notwendige Daten herunter..." +echo "$BLUEℹ Info: $NORMAL Die aktuelle MySpeed-Instanz wird heruntergeladen. Einen Moment..." sleep 2 wget "$RELEASE_URL" -log "Entpacke notwendige Daten..." +echo "$BLUEℹ Info: $NORMAL Download abgeschlossen. Entpacken läuft..." sleep 2 unzip MySpeed*.zip rm MySpeed-*.zip -log "Lade die notwendigen Abhängigkeiten herunter..." +echo "$BLUEℹ Info: $NORMAL Die notwendigen Abhängigkeiten werden jetzt installiert..." sleep 2 npm install clear -log "Erfolg! MySpeed wurde unter $INSTALLATION_PATH installiert." \ No newline at end of file +echo "$GREEN✓ Installation abgeschlossen: $NORMAL MySpeed wurde unter $INSTALLATION_PATH installiert." +echo "Die Weboberfläche findest du unter $BLUEhttp://localhost:5216$NORMAL."