From 1ae1cd638faaa1d1423cde47b25431c41bf9c860 Mon Sep 17 00:00:00 2001 From: Leon Gaultier Date: Tue, 8 Apr 2014 12:22:46 +0200 Subject: [PATCH] =?UTF-8?q?neue=20fertige=20Version=20f=C3=BCr=20den=20Sta?= =?UTF-8?q?ble=20Zweig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CAU_Installer | 14 +++++++------- calibre-autoupdate | 25 +++++++++++++------------ calibre-autoupdate.h | 36 ++---------------------------------- calibre-autoupdate_checks.h | 31 +++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 53 deletions(-) diff --git a/CAU_Installer b/CAU_Installer index c75f248..db3afc1 100755 --- a/CAU_Installer +++ b/CAU_Installer @@ -18,7 +18,7 @@ # Programmversion PROGNAME=`basename $0` -VERSION="0.13.98" +VERSION="0.14" ##### Variablen deklaration ##### # Downloadseite der Linuxinstallation @@ -62,7 +62,7 @@ func_version () # Versionsauskunft des Installers func_term_output echo "$PROGNAME: Der Calibre-Autoupdate-Installer (CAUI) v$VERSION" echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden," - echo "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE" + echo -e "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE\n" } @@ -156,7 +156,7 @@ func_install_noroot() # Die sed Befehle ersetzen in den Programmdateien Platzhalter für den Installationsort. # Grund hierfür sind die includes der Header unf Configfiles die den kompletten Fad benörigen echo -e "\n\033[1;34mDer Calibre-Autoupdater wird nun unter $UPDATER_INSTALL_LOCATION installiert...\e[m"; - echo -e "\033[1;32mProgrammdatei wird nach $BIN kopiert\e[m" + echo -e "\033[1;32mProgramm-Dateien wird nach $BIN kopiert\e[m" cp calibre-autoupdate $BIN sed -i "s/_-ETC-_/${ETC//\//\/}/g" $BIN"calibre-autoupdate" sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate" @@ -166,7 +166,7 @@ func_install_noroot() 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;32mDie Konfigurationsdatei wird nach $ETC kopiert\e[m" + echo -e "\n\033[1;32mDie Konfigurations-Dateien wird nach $ETC kopiert\e[m" cp calibre-autoupdate.conf $ETC sed -i "s/_-INC-_/${INC//\//\/}/g" $ETC"calibre-autoupdate.conf" sed -i "s/_-BIN-_/${BIN//\//\/}/g" $ETC"calibre-autoupdate.conf" @@ -180,7 +180,7 @@ func_install_root() # Die sed Befehle ersetzen in den Programmdateien Platzhalter für den Installationsort. # Grund hierfür sind die includes der Header unf Configfiles die den kompletten Fad benörigen echo -e "\n\033[1;34mDu hast kein Schreibrecht auf $UPDATER_INSTALL_LOCATION, daher wird SUDO versucht zu verwenden...\e[m"; - sudo echo -e "\033[1;36mProgrammdatei wird nach $BIN kopiert\e[m\e[m" + sudo echo -e "\033[1;36mProgramm-Dateien wird nach $BIN kopiert\e[m\e[m" sudo cp calibre-autoupdate $BIN sudo sed -i "s/_-ETC-_/${ETC//\//\/}/g" $BIN"calibre-autoupdate" sudo sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate" @@ -190,7 +190,7 @@ func_install_root() 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 Konfigurationsdatei wird nach $ETC kopiert\e[m" + echo -e "\n\033[1;36mDie Konfigurations-Dateien wird nach $ETC kopiert\e[m" sudo cp calibre-autoupdate.conf $ETC sudo sed -i "s/_-INC-_/${INC//\//\/}/g" $ETC"calibre-autoupdate.conf" sudo sed -i "s/_-BIN-_/${BIN//\//\/}/g" $ETC"calibre-autoupdate.conf" @@ -227,7 +227,7 @@ func_install_calibre() 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\033[1;32m" + 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" diff --git a/calibre-autoupdate b/calibre-autoupdate index da494eb..5fd5cea 100644 --- a/calibre-autoupdate +++ b/calibre-autoupdate @@ -62,8 +62,8 @@ # !!! Das ist die erste Version welche eine reibungslose Installation und einen reibungslosen # betrieb unter allen Linuxvarianten ermöglicht !!! # -# v0.13 Es wurden diverse Fehler bei eigentlichen Updateprozess bereinigt. Desweiteren wurden größere -# in kleine geteilt. +# v0.13 Es wurden diverse Fehler beim eigentlichen Updateprozess bereinigt. Desweiteren wurden größere +# Prozesse in kleine aufgeteilt. # # v0.14 Uninstallfunktion für Calibre hinzugefügt. Hiermit kann Calibre von der Festplatte deinstalliert werden. # Bei einer nicht vorhandenen Calibreinstallation wird vom Installsript des Updaters gefragt, ob Calibre @@ -71,6 +71,7 @@ # Die Funktion Installation des Updaters wurde aufgeteilt in root_install und noroot_install # Uninstall Funktion für den calibre-autoupdater mit gleichzeitiger nachfrage und eventueller # deinstallation vom Calibre Programm +# Der Code wurde überarbeitet, die Dialoge verbessert, Ergebnisse von Funktionsaufrufen in Variablen geschrieben # # TODO Auslesen der Download URL von der Download Seite # kontrolle ob alle benötigten programme für das skript vorhanden sind @@ -119,15 +120,15 @@ NOTIFY="echo" 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 "$?" in +case "$CHECK_STATE_RESULT" in 1) - func_check_version - CHECK_STATE_RESULT="$1" -echo $CHECK_STATE_RESULT -sleep 1000 - func_vercomp $CURRENT_VERSION $LATEST_VERSION # Funktion Versionvergleich - case $CHECK_STATE_RESULT in + func_check_version + func_vercomp $CURRENT_VERSION $LATEST_VERSION # Funktion Versionvergleich + CHECK_VERCOMP_RESULT="$?" + + case $CHECK_VERCOMP_RESULT in 0) $NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand ($CURRENT_VERSION).";; 1) @@ -139,12 +140,12 @@ sleep 1000 if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then $NOTIFY "Das Update wird nun installiert..." - echo -e "\033[34m" + 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 "\033[34m" - 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')" + 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." ;; diff --git a/calibre-autoupdate.h b/calibre-autoupdate.h index b0168d2..9329386 100644 --- a/calibre-autoupdate.h +++ b/calibre-autoupdate.h @@ -15,7 +15,6 @@ func_help () echo "$PROGNAME -- Der Calibre! Linux Edition calibre-autoupdater (CAU)" echo "" echo "Options:" - echo " -q, --quiet ohne Konsolenausgabe" echo " -h, --help zeigt die Hilfe an" echo " -V, --version gibt die Programmversion aus" echo " -c, --check kontrolliert ob benötigte Programme vorhanden sind" @@ -30,41 +29,10 @@ func_version () func_term_output echo "$PROGNAME: Der Calibre! autoupdater v$VERSION" echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden," - echo "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE" + echo -e "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE\n" } -func_vercomp () { # Funktion zum Versionsvergleich - if [[ $1 == $2 ]] - then - return 0 - fi - local IFS=. - local i ver1=($1) ver2=($2) - # fill empty fields in ver1 with zeros - 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 - done - return 0 -} - func_term_output () { ## Beginne mit der Ausgbe ## tty -s && clear @@ -154,6 +122,6 @@ func_uninstall_calibre() else sudo calibre-uninstall fi - echo -e "\n\n\033[1;32mCalibre würde DeInstalliert! Schade es ist ein tolles Programm zur eBookverwaltung :-)\e[m" + echo -e "\n\033[1;32mCalibre würde DeInstalliert! Schade es ist ein tolles Programm zur eBookverwaltung :-)\n\e[m" return 0 } \ No newline at end of file diff --git a/calibre-autoupdate_checks.h b/calibre-autoupdate_checks.h index c53bd07..6e919ea 100644 --- a/calibre-autoupdate_checks.h +++ b/calibre-autoupdate_checks.h @@ -40,6 +40,37 @@ else fi } +func_vercomp () { # Funktion zum Versionsvergleich + if [[ $1 == $2 ]] + then + return 0 + fi + local IFS=. + local i ver1=($1) ver2=($2) + # fill empty fields in ver1 with zeros + 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 + done + return 0 +} + func_check_run_calibre () { CALIBRE_PID=`ps ax | grep /opt/calibre/bin/calibre | grep -v grep | awk '{printf $1}'`