From df14bffdee28cf14374d3efdd8e468fdde09842f Mon Sep 17 00:00:00 2001 From: Leon Gaultier Date: Tue, 8 Apr 2014 14:40:44 +0200 Subject: [PATCH] Neue Funktion im Installer, Check ob Verzeichnisstruktur vorhanden ist. /etc /bin /include, wenn nicht auf Nachfrage anlegen der Verzeichnisse --- CAU_Installer | 37 ++++++++++++++++++++-- calibre-autoupdate | 10 ++++-- calibre-autoupdate_checks.h | 62 +++++++++++++++++-------------------- 3 files changed, 71 insertions(+), 38 deletions(-) diff --git a/CAU_Installer b/CAU_Installer index db3afc1..c7b1abb 100755 --- a/CAU_Installer +++ b/CAU_Installer @@ -18,7 +18,7 @@ # Programmversion PROGNAME=`basename $0` -VERSION="0.14" +VERSION="0.14.99.1" ##### Variablen deklaration ##### # Downloadseite der Linuxinstallation @@ -84,7 +84,38 @@ ETC=$UPDATER_INSTALL_LOCATION/etc/ BIN=$UPDATER_INSTALL_LOCATION/bin/ } -func_check_dir() # Install oder Update Calibre Updater, Check ob Calibre überhaupt installiert ist +func_check_dir_structur() +{ + func_selection_query() + { + while ((!gueltig)); do # beginn der Ja/Nein Abfrage + echo -e "\033[1;34m" + read -sn1 -t 30 -p "Soll das Verzeichnis angelegt werden? [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 + if (( ! result )); then + echo -e "\n\033[1;31mBitte Entschuldige, aber die Installation des Calibre-Autoupdaters" + echo -e "konnte nicht zu Ende geführt werden.\e[m\n" + exit 2 + fi + echo -e "\033[1;34mDas Verzeichnis wird angelegt!\e[m" + } + +if [ ! -d $BIN ] + echo -e "\033[1;34mEs konnte im Installationsort kein /bin Verzeichnis gefunden werden" + +fi + +} + +func_check_calibre_install() # Install oder Update Calibre Updater, Check ob Calibre überhaupt installiert ist { if test ! -d $CALIBRE_INSTALL_LOCATION/calibre ; then echo -e "\n\033[31mKeine Calibre Installation unter $CALIBRE_INSTALL_LOCATION gefunden.\033[1;34m" @@ -203,7 +234,7 @@ func_install_process() # Installiert den Calibre Updater { func_term_output func_change_install_dir -func_check_dir +func_check_calibre_install if [ -w "$BIN" ]; then func_install_noroot diff --git a/calibre-autoupdate b/calibre-autoupdate index 5fd5cea..cd10b72 100644 --- a/calibre-autoupdate +++ b/calibre-autoupdate @@ -71,7 +71,14 @@ # 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 +# Der Code wurde überarbeitet, die Dialoge verbessert, Ergebnisse von Funktionsaufrufen in Variablen +# geschrieben +# +# v0.15 die Funktion Versionsvergleich wurde mit der Funktion zum auslesen der Vorhanden Version und der verfügbaren +# Version +# zusammen gelegt. +# der Installer kontrolliert ob am Installationsort des Updaters die Verzeichnisstrucktur /bin /include /etc +# vorhanden ist und wenn nicht legt er sie an. # # TODO Auslesen der Download URL von der Download Seite # kontrolle ob alle benötigten programme für das skript vorhanden sind @@ -125,7 +132,6 @@ CHECK_STATE_RESULT="$?" case "$CHECK_STATE_RESULT" in 1) func_check_version - func_vercomp $CURRENT_VERSION $LATEST_VERSION # Funktion Versionvergleich CHECK_VERCOMP_RESULT="$?" case $CHECK_VERCOMP_RESULT in diff --git a/calibre-autoupdate_checks.h b/calibre-autoupdate_checks.h index 6e919ea..b3212df 100644 --- a/calibre-autoupdate_checks.h +++ b/calibre-autoupdate_checks.h @@ -40,37 +40,6 @@ 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}'` @@ -95,9 +64,36 @@ func_check_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/'` - return 0 -} + 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 + 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_prog () { func_term_output