From 476b2e87a6c5fc41426fb4e604b1b9e6fdffc0f9 Mon Sep 17 00:00:00 2001 From: Leon Gaultier Date: Thu, 10 Apr 2014 16:49:39 +0200 Subject: [PATCH] =?UTF-8?q?die=20sed=20Befehle=20m=C3=BCssen=20weder=20rei?= =?UTF-8?q?n.=20Sonst=20funktioniert=20das=20Script=20nur=20wenn=20es=20vo?= =?UTF-8?q?m=20Installordner=20aus=20aufgerufen=20wird.=20Also=20wieder=20?= =?UTF-8?q?per=20sed=20die=20Installpfade=20eintragen=20lassen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CAU_Installer | 12 ++- calibre-autoupdate | 129 ++++++++++++------------- calibre-autoupdate.h | 154 ++++++++++++++--------------- calibre-autoupdate_checks.h | 188 ++++++++++++++++++++---------------- 4 files changed, 249 insertions(+), 234 deletions(-) diff --git a/CAU_Installer b/CAU_Installer index 910a27c..a7adbcb 100755 --- a/CAU_Installer +++ b/CAU_Installer @@ -18,7 +18,7 @@ # Programmversion PROGNAME=`basename $0` -VERSION="0.14.99.5" +VERSION="0.14.99.6" ##### Variablen deklaration ##### # Downloadseite der Linuxinstallation @@ -63,13 +63,14 @@ func_install_noroot() echo -e "\n\033[1;36mDie Programm-Dateien werden nach $BIN kopiert\e[m\e[m" if [ ! -d $BIN ]; then mkdir $BIN; fi; if [ ! -d $ETC ]; then mkdir $ETC; fi; if [ ! -d $INC ]; then mkdir $INC; fi cp calibre-autoupdate $BIN; chmod 755 $BIN"calibre-autoupdate" - sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate" # Der Installer übergibt die Versionsnummer + sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate" # Der Installer übergibt die Versionsnummer func_progressbar echo -e "\n\033[1;36mDie Header-Dateien werden nach $INC kopiert\e[m" cp calibre-autoupdate.h calibre-autoupdate_checks.h $INC; chmod 644 $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h" func_progressbar echo -e "\n\033[1;36mDie Konfigurations-Dateien werden nach $ETC kopiert\e[m" cp calibre-autoupdate.conf $ETC; chmod 644 $ETC"calibre-autoupdate.conf"; + sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf" # Ort der Calibreinstall func_progressbar return 0 } @@ -77,7 +78,7 @@ func_install_noroot() func_install_root() { echo -e "\n\033[1;34mDu hast kein Schreibrecht auf $UPDATER_INSTALL_LOCATION, daher wird SUDO versucht zu verwenden...\e[m"; - sudo echo -e "\n\033[1;36mProgramm-Dateien wird nach $BIN kopiert\e[m\e[m" + sudo echo -e "\n\033[1;36mDie Programm-Dateien werden nach $BIN kopiert\e[m\e[m" if [ ! -d $BIN ]; then sudo mkdir $BIN; fi; if [ ! -d $ETC ]; then sudo mkdir $ETC; fi; if [ ! -d $INC ]; then sudo mkdir $INC; fi sudo cp calibre-autoupdate $BIN; sudo chmod 755 $BIN"calibre-autoupdate" sudo sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate" # Der Installer übergibt die Versionsnummer @@ -85,8 +86,9 @@ func_install_root() echo -e "\n\033[1;36mDie Header-Dateien werden nach $INC kopiert\e[m" sudo cp calibre-autoupdate.h calibre-autoupdate_checks.h $INC; sudo chmod 644 $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h" func_progressbar - echo -e "\n\033[1;36mDie Konfigurations-Dateien wird nach $ETC kopiert\e[m" + echo -e "\n\033[1;36mDie Konfigurations-Dateien werden nach $ETC kopiert\e[m" sudo cp calibre-autoupdate.conf $ETC; sudo chmod 644 $ETC"calibre-autoupdate.conf"; + sudo sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf" # Ort der Calibreinstall func_progressbar return 0 } @@ -100,7 +102,7 @@ func_install_process() # Installiert den Calibre Updater else func_install_root fi - echo -e "\n\n\033[1;36mDer Calibre-Autoupdater wurde erfolgreich installiert und" + echo -e "\n\n\033[1;34mDer Calibre-Autoupdater wurde erfolgreich installiert und" echo -e "kann nun mit \"calibre-update\" oder \"$BIN"calibre-update"\" aufgerufen werden\e[m\n" return 0 } diff --git a/calibre-autoupdate b/calibre-autoupdate index 4f51275..3e47356 100644 --- a/calibre-autoupdate +++ b/calibre-autoupdate @@ -80,118 +80,111 @@ # der Installer kontrolliert ob am Installationsort des Updaters die Verzeichnisstrucktur /bin /include /etc # vorhanden ist und wenn nicht legt er sie an. # +# v0.20 Der Code wurde komplett überarbeitet und vieles neu geschrieben. Sauberer Code und weniger Abfragen. +# Die Bedingungen und Schleifen wurden einfacher und logischer geschrieben +# # TODO Auslesen der Download URL von der Download Seite # kontrolle ob alle benötigten programme für das skript vorhanden sind # # -###################################### -###################################### +########################################################## +########################################################## # Programmversion PROGNAME=`basename $0` VERSION="_-VERSION-_" + + ################################# ######### CONFIGURATION ######### # Diese Version funktioniert für alle Linuxsysteme nur so lange # bis Veränderungen auf der Internetseite durchgeführt wurden ################################# - # Einlesen des Configfiles mit den Variablen für die Calibre Downloadseite, Hauptseite # und den Installationsfaden in der Verzeichnishierarchie source ../etc/calibre-autoupdate.conf - ################################# ##### Zusätzliche Funktionen aus Headerfiles laden ##### source ../include/calibre-autoupdate.h source ../include/calibre-autoupdate_checks.h - - - ####################################################### ####################################################### -## main vom Script --- Start des Updater Skripts + func_update () { # Wenn eine grafische Oberfläche vorhanden ist, wird u.a. "notify-send" für Benachrichtigungen verwendet, ansonsten immer "echo" -NOTIFY="echo" -[ -n "$DISPLAY" ] && NOTIFY="notify-send -t 10000 -i /usr/share/icons/hicolor/256x256/apps/calibre-gui.png Calibre-Auto-Updater" + NOTIFY="echo" + [ -n "$DISPLAY" ] && NOTIFY="notify-send -t 10000 -i /usr/share/icons/hicolor/256x256/apps/calibre-gui.png Calibre-Auto-Updater" + func_term_output # ruft die Funktion für Konsolenausgabe auf + func_check_stat # ruft die Funktion "check Status Netzwerk und Downloadadressen" auf + CHECK_STATE_RESULT="$?" -func_term_output # ruft die Funktion für Konsolenausgabe auf -func_check_stat # ruft die Funktion "check Status Netzwerk und Downloadadressen" auf -CHECK_STATE_RESULT="$?" + case "$CHECK_STATE_RESULT" in + 1) + func_check_version + CHECK_VERCOMP_RESULT="$?" -case "$CHECK_STATE_RESULT" in - 1) - func_check_version - CHECK_VERCOMP_RESULT="$?" - - case $CHECK_VERCOMP_RESULT in - 0) - $NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand ($CURRENT_VERSION).";; - 1) - $NOTIFY "Uh Oh! Deine Calibre Version ist aktueller wie die letzte Verfügbare! (Installiert: $CURRENT_VERSION, Letzte Verfügbare: $LATEST_VERSION)";; - 2) - $NOTIFY "Ein Calibre Update ist verfügbar. (Installiert: $CURRENT_VERSION, letzte Verfügbare: $LATEST_VERSION)" - # Installiert die aktuellste verfügbare Version von der Calibre Homepage - func_check_run_calibre # Aufruf der Funktion ob Calibre gestartet ist - - if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then - $NOTIFY "Das Update wird nun installiert..." - echo -e "\e[m" - wget -nv -O- $DOWNLOAD_URL | python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('$CALIBRE_INSTALL_LOCATION')" - else - $NOTIFY "Du hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION. Das Update wird mit SUDO installiert. Bitte gib hierzu Dein Userpasswort im Terminalfenster ein..." - echo -e "\e[m" - sudo -v && wget -nv -O- $DOWNLOAD_URL | sudo python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('$CALIBRE_INSTALL_LOCATION')" - fi - $NOTIFY "Calibre wurde auf die neuste Version aktuallisiert." - ;; - esac - ;; - - 2) - $NOTIFY "Versionsvergleich fehlgeschlagen!!! Die Calibre Homepage $CHECK_CALIBRE_DOWNLOAD_PAGE ist nicht verfügbar!" - ;; - 3) - $NOTIFY "Update fehlgeschlagen!!! Die Download Seite $CHECK_DOWNLOAD_URL ist nicht verfügbar!" - ;; - 4) - $NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!" - ;; -esac -echo -e "\e[m" + case $CHECK_VERCOMP_RESULT in + 0) + $NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand ($CURRENT_VERSION).";; + 1) + $NOTIFY "Uh Oh! Deine Calibre Version ist aktueller wie die letzte Verfügbare! (Installiert: $CURRENT_VERSION, Letzte Verfügbare: $LATEST_VERSION)";; + 2) + $NOTIFY "Ein Calibre Update ist verfügbar. (Installiert: $CURRENT_VERSION, letzte Verfügbare: $LATEST_VERSION)" + # Installiert die aktuellste verfügbare Version von der Calibre Homepage + func_check_run_calibre # Aufruf der Funktion ob Calibre gestartet ist + if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then + $NOTIFY "Das Update wird nun installiert..." + echo -e "\e[m" + wget -nv -O- $DOWNLOAD_URL | python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('$CALIBRE_INSTALL_LOCATION')" + else + $NOTIFY "Du hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION. Das Update wird mit SUDO installiert. Bitte gib hierzu Dein Userpasswort im Terminalfenster ein..." + echo -e "\e[m" + sudo -v && wget -nv -O- $DOWNLOAD_URL | sudo python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('$CALIBRE_INSTALL_LOCATION')" + fi + $NOTIFY "Calibre wurde auf die neuste Version aktuallisiert.";; + esac + ;; + 2) + $NOTIFY "Versionsvergleich fehlgeschlagen!!! Die Calibre Homepage $CHECK_CALIBRE_DOWNLOAD_PAGE ist nicht verfügbar!";; + 3) + $NOTIFY "Update fehlgeschlagen!!! Die Download Seite $CHECK_DOWNLOAD_URL ist nicht verfügbar!";; + 4) + $NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!";; + esac + echo -e "\e[m" + return 0 } +#### Main Funktion #### while test "$#" -gt 0 do - arg="$1" - shift + arg="$1" + shift + case $arg in + -*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac - case $arg in - -*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - case "$arg" in - --help | -h ) + case "$arg" in + --help | -h ) func_help; exit 0 ;; - --version | -V | -v ) + --version | -V | -v ) func_version; exit 0 ;; - --check | -C | -c ) + --check | -C | -c ) func_check_prog; exit 0 ;; - --uninstall | -U | -u ) + --uninstall | -U | -u ) func_uninstall; exit 0;; - --uninstall_calibre ) + --uninstall_calibre ) func_uninstall_calibre; exit 0 ;; - esac - + esac done func_check_prog func_update diff --git a/calibre-autoupdate.h b/calibre-autoupdate.h index 60af768..79cd9af 100644 --- a/calibre-autoupdate.h +++ b/calibre-autoupdate.h @@ -2,10 +2,20 @@ # Copyright (C) 2013-2014 Leon Gaultier # +func_term_output () +{ + ## Beginne mit der Ausgbe ## + tty -s && clear + echo -e "\033[44m \033[0m\033[1m $PROGNAME Version $VERSION\033[0m\n\033[44m \033[0m 2013-2014 by Leon Gaultier\n\e[m"; + return 0 +} + func_usage () { + func_term_output echo "Verwendung: $PROGNAME [OPTION...]" echo "Verwende '$PROGNAME --help' oder '$PROGNAME -h' für mehr Informationen." + return 0 } func_help () @@ -22,6 +32,7 @@ func_help () echo " --uninstall_calibre deinstalliert das Calibre Programm" echo "" echo -e "Sende Fehler an .\n"; + return 0 } func_version () @@ -30,14 +41,7 @@ func_version () echo "$PROGNAME: Der Calibre! autoupdater v$VERSION" echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden," echo -e "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE\n" - -} - -func_term_output () { - ## Beginne mit der Ausgbe ## - tty -s && clear - echo -e "\033[44m \033[0m\033[1m $PROGNAME Version $VERSION\033[0m\n\033[44m \033[0m 2013-2014 by Leon Gaultier\n\e[m"; - return 0 + return 0 } func_progressbar() @@ -47,38 +51,38 @@ func_progressbar() for ((i=0; i<61; i++)); do echo -e -n "\033[32m=" case $i in - 15) - echo -e -n "25%" ;; - 30) - echo -e -n "50%" ;; - 45) - echo -e -n "75%" ;; - 60) - echo -e -n " 100%" ;; + 15) + echo -e -n "25%" ;; + 30) + echo -e -n "50%" ;; + 45) + echo -e -n "75%" ;; + 60) + echo -e -n " 100%" ;; esac sleep 0.03 done echo -e "\e[m" return 0 } + func_uninstall() { - func_term_output - while ((!gueltig)); do # beginn der Ja/Nein Abfrage - echo -e "\033[1;34m" - read -sn1 -t 30 -p "Möchtest Du den Calibre-Autoupdater wirklich DeInstallieren? [j/n] " answer - echo -e "\e[m" - case "$answer" in - [JjYy]) result=1; gueltig=1 ;; - [Nn]) result=0; gueltig=1 ;; - "") result=0; gueltig=1 ;; - *) gueltig=0 ;; - esac - done - echo + func_term_output + while ((!gueltig)); do # beginn der Ja/Nein Abfrage + echo -e "\033[1;34m" + read -sn1 -t 30 -p "Möchtest Du den Calibre-Autoupdater wirklich DeInstallieren? [j/n] " answer + echo -e "\e[m" + case "$answer" in + [JjYy]) result=1; gueltig=1 ;; + [Nn]) result=0; gueltig=1 ;; + "") result=0; gueltig=1 ;; + *) gueltig=0 ;; + esac + done if (( ! result )); then echo -e "\033[1;31mDie DeInstallation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n" - exit 1 + break fi echo -e "\033[1;31mDer Calibre-Autoupdater wird nun deinstalliert.\e[m" if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then @@ -92,29 +96,30 @@ func_uninstall() fi func_progressbar echo -e "\n\033[1;32mDer Calibre-Autoupdater wurde deinstalliert. Schade das Du ihn nicht weiter verwendest\n\e[m" + return 0 } + func_uninstall_calibre() { - func_term_output - if test ! -d $CALIBRE_INSTALL_LOCATION/calibre ; then - echo -e "\033[1;31mEs konnte keine Calibre Installation gefunden werden. Die DeInstallation wurde abgebrochen\e[m\n" - exit 1 - fi - while ((!gueltig)); do # beginn der Ja/Nein Abfrage - echo -e "\033[1;34mMöchtest Du Calibre wirklich DeInstallieren? Calibre kann dann nicht mehr verwendet werden!" - read -sn1 -t 30 -p "Deine Bücher und die Calibre Bibliothek bleiben erhalten. [j/n] " answer - echo -e "\e[m" - case "$answer" in - [JjYy]) result=1; gueltig=1 ;; - [Nn]) result=0; gueltig=1 ;; - "") result=0; gueltig=1 ;; - *) gueltig=0 ;; - esac - done - echo + func_term_output + if [ ! -d $CALIBRE_INSTALL_LOCATION/calibre ] ; then + echo -e "\033[1;31mEs konnte keine Calibre Installation gefunden werden. Die DeInstallation wurde abgebrochen\e[m\n" + break + fi + while ((!gueltig)); do # beginn der Ja/Nein Abfrage + echo -e "\033[1;34mMöchtest Du Calibre wirklich DeInstallieren? Calibre kann dann nicht mehr verwendet werden!" + read -sn1 -t 30 -p "Deine Bücher und die Calibre Bibliothek bleiben erhalten. [j/n] " answer + echo -e "\e[m" + case "$answer" in + [JjYy]) result=1; gueltig=1 ;; + [Nn]) result=0; gueltig=1 ;; + "") result=0; gueltig=1 ;; + *) gueltig=0 ;; + esac + done if (( ! result )); then echo -e "\n\033[1;31mDie DeInstallation von Calibre wurde durch Dich abgebrochen.\e[m\n" - exit 1 + break fi echo -e "\033[1;34mCalibre wird nun deinstalliert.\e[m" if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then @@ -122,40 +127,29 @@ func_uninstall_calibre() else sudo calibre-uninstall fi - echo -e "\n\033[1;32mCalibre würde DeInstalliert! Schade es ist ein tolles Programm zur eBookverwaltung :-)\n\e[m" - return 0 + echo -e "\n\033[1;32mCalibre würde DeInstalliert! Schade es ist ein tolles Programm zur eBookverwaltung :-)\n\e[m" + return 0 } - - - - - - - - - - - - - func_install_calibre() { - if [ ! $CALIBRE_INSTALL_LOCATION ]; then - func_term_output - read -p "Wohin soll Calibre installiert werden? [default /opt] " CALIBRE_INSTALL_LOCATION - fi - if [ -z $CALIBRE_INSTALL_LOCATION ]; then - CALIBRE_INSTALL_LOCATION=/opt - fi - if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then - echo -e "\033[1;32mCalibre wird nun installiert...\n\e[m" - wget -nv -O- $DOWNLOAD_URL | python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('$CALIBRE_INSTALL_LOCATION')" - else - echo -e "\033[1;34mDu hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION. Calibre wird mit SUDO installiert. Bitte gib hierzu Dein Userpasswort ein...\n\e[m" - sudo -v && wget -nv -O- $DOWNLOAD_URL | sudo python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('$CALIBRE_INSTALL_LOCATION')" - fi - echo -e "\n\n\033[1;36mHerzlichen Glückwunsch. Calibre wurde installiert und kann nun mit "calibre" verwendet werden.\n\033[0m" - sleep 5 - +# Installationsort von Calibre + read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION + if [ -z $CALIBRE_INSTALL_LOCATION ]; then + CALIBRE_INSTALL_LOCATION=/opt + fi + while [ ! -d $CALIBRE_INSTALL_LOCATION ]; do + echo -e "\n\033[1;31mDas Verzeichnis $CALIBRE_INSTALL_LOCATION existiert nicht. Bitte gib ein existierendes Verzeichnis ein!\e[m" + read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION + done + if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then + echo -e "\033[1;32mCalibre wird nun installiert...\n\e[m" + wget -nv -O- $DOWNLOAD_URL | python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('$CALIBRE_INSTALL_LOCATION')" + else + echo -e "\033[1;34mDu hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION. Calibre wird mit SUDO installiert. Bitte gib hierzu Dein Userpasswort ein...\n\e[m" + sudo -v && wget -nv -O- $DOWNLOAD_URL | sudo python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('$CALIBRE_INSTALL_LOCATION')" + fi + echo -e "\n\n\033[1;36mHerzlichen Glückwunsch. Calibre wurde unter $CALIBRE_INSTALL_LOCATION installiert" + echo -e "und kann nun mit \"calibre\" verwendet werden.\n\033[0m" + return 0 } \ No newline at end of file diff --git a/calibre-autoupdate_checks.h b/calibre-autoupdate_checks.h index b3212df..fab694c 100644 --- a/calibre-autoupdate_checks.h +++ b/calibre-autoupdate_checks.h @@ -2,54 +2,67 @@ # Copyright (C) 2013-2014 Leon Gaultier # -func_http_status_code () { - echo -e "\033[1;34m Hole Status Code von $CHECK_CALIBRE_DOWNLOAD_PAGE. Bitte warten.\e[m" - stat_1=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_CALIBRE_DOWNLOAD_PAGE) - func_progressbar - echo -e "\033[32m Status Codes von $CHECK_CALIBRE_DOWNLOAD_PAGE erhalten\e[m" - echo -e "\n\033[1;34m Hole Status Code von $CHECK_DOWNLOAD_URL. Bitte warten.\e[m" - stat_2=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_DOWNLOAD_URL) - func_progressbar - echo -e "\033[32m Status Codes von $CHECK_DOWNLOAD_URL erhalten\e[m" - return 0 +func_http_status_code () +{ + echo -e "\033[1;34m Hole Status Code von $CHECK_CALIBRE_DOWNLOAD_PAGE. Bitte warten.\e[m" + stat_1=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_CALIBRE_DOWNLOAD_PAGE) + func_progressbar + echo -e "\033[32m Status Codes von $CHECK_CALIBRE_DOWNLOAD_PAGE erhalten\e[m" + echo -e "\n\033[1;34m Hole Status Code von $CHECK_DOWNLOAD_URL. Bitte warten.\e[m" + stat_2=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_DOWNLOAD_URL) + func_progressbar + echo -e "\033[32m Status Codes von $CHECK_DOWNLOAD_URL erhalten\e[m" + return 0 } -func_check_stat () { # Funktion zum Check Verfügbarkeit der Downloadseiten und der Internetverbindung -# Test for network conection -echo -e "\n\033[1;34m Suche nach vorhandenen Netzwerk für die Verbindung zum Internet :-)\e[m" -for INTERFACE in $(ls /sys/class/net/ | grep -v lo) -do - if [[ $(cat /sys/class/net/$INTERFACE/carrier) = 1 ]]; then - ONLINE=1 - fi -done -func_progressbar -if [ $ONLINE ]; then - echo -e "\033[32m Es wurde ein Netzwerkinterface gefunden. Verbinde über Interface $INTERFACE\n\e[m" - func_http_status_code - if [[ $stat_1 -eq 200 && $stat_2 -eq 200 ]]; then - return 1 - elif [[ $stat_1 -eq !200 ]]; then - return 2 - else - return 3 - fi -else - echo -e "\n\033[31m Fehler!!! Bitte schau Dir die Desktop Benachrichtigung an!\e[m" - return 4 -fi +func_check_stat () # Funktion zum Check Verfügbarkeit der Downloadseiten und der Internetverbindung +{ + # Test for network conection + echo -e "\n\033[1;34m Suche nach vorhandenen Netzwerk für die Verbindung zum Internet :-)\e[m" + for INTERFACE in $(ls /sys/class/net/ | grep -v lo); do + if [[ $(cat /sys/class/net/$INTERFACE/carrier) = 1 ]]; then + ONLINE=1 + fi + done + func_progressbar + if [ $ONLINE ]; then + echo -e "\033[32m Es wurde ein Netzwerkinterface gefunden. Verbinde über Interface $INTERFACE\n\e[m" + func_http_status_code + if [[ $stat_1 -eq 200 && $stat_2 -eq 200 ]]; then + return 1 + elif [[ $stat_1 -eq !200 ]]; then + return 2 + else + return 3 + fi + else + echo -e "\n\033[31m Fehler!!! Bitte schau Dir die Desktop Benachrichtigung an!\e[m" + return 4 + fi + return 0 } + + + + + + + + + + + + + func_check_run_calibre () { CALIBRE_PID=`ps ax | grep /opt/calibre/bin/calibre | grep -v grep | awk '{printf $1}'` - while [ $CALIBRE_PID ] - do + while [ $CALIBRE_PID ]; do $NOTIFY "Um das Update installieren zu können, muss Calibre beendet werden. Calibre wird in einer Minute vom Update Service beendet. !!!Bitte speichere alle wichtigen Daten!!!" sleep 3 echo "" - for (( i=60; i>0; i-- )) - do + for (( i=60; i>0; i-- )); do echo -e -n "\033[31m noch \033[32m>>$i<< \033[31m Sekunden bis zum Calibre Programmende\r\e[m" sleep 1 done @@ -59,60 +72,73 @@ func_check_run_calibre () { return 0 } -func_check_version () { - #Ermitteln der letzten aktuell verfügbaren Version - LATEST_VERSION=`curl -s $CALIBRE_DOWNLOAD_PAGE | grep 'latest release of calibre' | sed 's/[^0-9.]*\([1-9]*[0-9]\.[1-9]*[0-9]\).*/\1/'` - #Ermitteln der aktuell installierten Version. - CURRENT_VERSION=`calibre --version | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` - if [[ $CURRENT_VERSION == $LATEST_VERSION ]] - then - return 0 + + + + + + + + +func_check_version () { + #Ermitteln der letzten aktuell verfügbaren Version + LATEST_VERSION=`curl -s $CALIBRE_DOWNLOAD_PAGE | grep 'latest release of calibre' | sed 's/[^0-9.]*\([1-9]*[0-9]\.[1-9]*[0-9]\).*/\1/'` + #Ermitteln der aktuell installierten Version. + CURRENT_VERSION=`calibre --version | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` + + if [[ $CURRENT_VERSION == $LATEST_VERSION ]]; then + return 0 fi local IFS=. local i ver1=($CURRENT_VERSION) ver2=($LATEST_VERSION) # fill empty fields in ver1 with zeros - for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)) - do - ver1[i]=0 + for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do + ver1[i]=0 done - for ((i=0; i<${#ver1[@]}; i++)) - do - if [[ -z ${ver2[i]} ]] - then - # fill empty fields in ver2 with zeros - ver2[i]=0 - fi - if ((10#${ver1[i]} > 10#${ver2[i]})) - then - return 1 - fi - if ((10#${ver1[i]} < 10#${ver2[i]})) - then - return 2 - fi + for ((i=0; i<${#ver1[@]}; i++)); do + if [[ -z ${ver2[i]} ]]; then + # fill empty fields in ver2 with zeros + ver2[i]=0 + fi + if ((10#${ver1[i]} > 10#${ver2[i]})); then + return 1 + fi + if ((10#${ver1[i]} < 10#${ver2[i]})); then + return 2 + fi done return 0 } + + + + + + + + + + + + + func_check_prog () { - func_term_output - if test ! -f $CURL ; then - $NOTIFY "Du hast Curl nich installiert, es wird aber für die Updatefunktion benötigt" - exit 1 - fi - - if test ! -f $AWK ; then - $NOTIFY "Du hast AWK nich installiert, es wird aber für die Updatefunktion benötigt" - exit 1 - - if test ! -f $NOTIFY ; then - echo -e "\e[0;33mDu hast Notify-Send nich installiert, das Programm ist optional und wird\e[m" - echo -e "für die Upatefunktion nicht unbedingt benötigt\n\e[m" - sleep 10 - fi - - fi + func_term_output + if [ ! -f $CURL ]; then + $NOTIFY "Du hast Curl nich installiert, es wird aber für die Updatefunktion benötigt" + break + fi + if [ ! -f $AWK ]; then + $NOTIFY "Du hast AWK nich installiert, es wird aber für die Updatefunktion benötigt" + break + fi + if [ ! -f $NOTIFY ]; then + echo -e "\e[0;33mDu hast Notify-Send nich installiert, das Programm ist optional und wird\e[m" + echo -e "für die Upatefunktion nicht unbedingt benötigt\n\e[m" + sleep 10 + fi echo -e "\033[32mAlle benötigten Programme sind installiert. Starte $PROGNAME ohne Optionen und" echo -e "es wird nach einer aktuellen Calibre Version gesucht\n\e[m"; } \ No newline at end of file