From 2b4aaedd5878389424d2ad11c5a29ce48007b2f6 Mon Sep 17 00:00:00 2001 From: Leon Gaultier Date: Mon, 31 Mar 2014 18:32:46 +0200 Subject: [PATCH 1/4] Funktionen in Headerfiles ausgelagert --- calibre-autoupdate | 162 +++--------------------------------- calibre-autoupdate.conf | 21 +++++ calibre-autoupdate.h | 65 +++++++++++++++ calibre-autoupdate_checks.h | 80 ++++++++++++++++++ 4 files changed, 177 insertions(+), 151 deletions(-) create mode 100644 calibre-autoupdate.conf create mode 100644 calibre-autoupdate.h create mode 100644 calibre-autoupdate_checks.h diff --git a/calibre-autoupdate b/calibre-autoupdate index b3bd971..1f14608 100755 --- a/calibre-autoupdate +++ b/calibre-autoupdate @@ -51,6 +51,8 @@ # Unterschiedliche Installationsart und -dialog je nach dem ob man Schreibrechte # auf im Calibre Installationspfad hat oder nicht. # +# v0.9 einbinden eines Konfigurationsfiles, auslagern einiger Funktionen in Headerfiles +# # TODO auslesen der Download URL von der Download Seite # kontrolle ob alle benötigten programme für das skript vorhanden sind # @@ -58,6 +60,11 @@ ###################################### ###################################### +# Programmversion +PROGNAME=`basename $0` +VERSION="0.8.99" +QUIET=0 + ################################# @@ -65,137 +72,19 @@ # Diese Version funktioniert für alle Linuxsysteme nur so lange # bis Veränderungen auf der Internetseite durchgeführt wurden ################################# - -# Die Download Seiten URL. -export CALIBRE_DOWNLOAD_PAGE=http://calibre-ebook.com/download_linux -# The location of the installed application. -export CALIBRE_INSTALL_LOCATION=/opt -# The download URL -DOWNLOAD_URL=https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py -# Variablen für den Verfügbarkeitscheck -CHECK_CALIBRE_DOWNLOAD_PAGE=http://calibre-ebook.com -CHECK_DOWNLOAD_URL=https://github.com - -# externe Programme welche benötigt werden -CURL=/usr/bin/curl -NOTIFY=/usr/bin/notify-send -AWK=/usr/bin/awk - -# Programmversion -PROGNAME=`basename $0` -VERSION="0.8" -QUIET=0 +# Einlesen des Configfiles mit den Constanten für die Calibre Downloadseite und Hauptseite +source ./calibre-autoupdate.conf ################################# ##### Zusätzliche Funktionen ##### -func_usage () -{ - echo "Usage: $PROGNAME [OPTION...]" - echo "Try '$PROGNAME --help' or '$PROGNAME -h' for more information." -} +./calibre-autoupdate.h +./calibre-autoupdate_checks.h -func_help () -{ - func_term_output - echo "Usage: $PROGNAME [OPTION...]" - echo "$PROGNAME -- the Calibre! Linux Edition calibre-autoupdater" - 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 checkt ob benötigte Programme vorhanden sind" - echo "" - echo -e "Report bugs to .\n"; -} -func_version () -{ - echo "$PROGNAME: the Calibre! autoupdater v$VERSION" - echo "Copyright (C) Leon Gaultier 2013-2014. This program is distributed" - echo "in the hope that it will be useful, but WITHOUT ANY WARRANTY" -} - -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_stat () { # Funktion zum Check Verfügbarkeit der Downloadseiten und der Internetverbindung -# Test for network conection -echo -e "\033[1;34m Ich schau dann mal ob Dein Computer überhaupt ein Netzwerk hat :-)"; -for INTERFACE in $(ls /sys/class/net/ | grep -v lo); -do - if [[ $(cat /sys/class/net/$INTERFACE/carrier) = 1 ]]; then - ONLINE=1 - fi -done - -if [ $ONLINE ]; then - echo -e "\033[32m Oh Wunder! Habe ein Netzwerk gefunden. Verbinde über Interface $INTERFACE, - was nicht heißt das es geht :-P"; - 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 "\033[31m Fehler!!! Sieh Dir die verdammte Desktop Benachrichtigung an!"; - return 4 -fi -} - -func_check_run_calibre () { - CALIBRE_PID=`ps ax | grep /opt/calibre/bin/calibre | grep -v grep | awk '{printf $1}'` - - 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 - for (( i=60; i>0; i-- )); - do - echo -e "\033[31m noch \033[32m>>$i<< \033[31m Sekunden bis zum Calibre Programmende" - sleep 1 - clear - funct_term_output - done - kill -15 $CALIBRE_PID - return 0 - done - return 0 -} func_http_status_code () { echo -e "\033[1;34m Hole Status Code von \"$CHECK_CALIBRE_DOWNLOAD_PAGE\". Bitte warten."; @@ -214,36 +103,7 @@ func_term_output () { 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/'` - return 0 -} - -func_check_prog () { - func_term_output - if test ! -f $CURL ; then - echo -e "\033[31mDu hast Curl nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2 - exit 1 - fi - - if test ! -f $AWK ; then - echo -e "\033[31mDu hast AWK nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2 - exit 1 - - if test ! -f $NOTIFY ; then - echo -e "\e[0;33mDu hast Notify-Send nich installiert, das Programm ist optional und wird"; >&2 - echo -e "für die Upatefunktion nicht unbedingt benötigt\n"; >&2 - sleep 10 - fi - - fi - echo -e "\033[32mAlle benötigten Programme sind installiert. Starte $PROGNAME ohne Optionen und" - echo -e "es wird nach einer aktuellen Calibre Version geschaut\n"; -} ####################################################### ####################################################### ## main vom Script --- Start des Updater Skripts diff --git a/calibre-autoupdate.conf b/calibre-autoupdate.conf new file mode 100644 index 0000000..1b4ebbb --- /dev/null +++ b/calibre-autoupdate.conf @@ -0,0 +1,21 @@ +# Calibre Auto Updater Configfile +# Copyright (C) 2013-2014 Leon Gaultier +# + +# Calibre Download Seite URL. +export CALIBRE_DOWNLOAD_PAGE=http://calibre-ebook.com/download_linux +# The location of the installed application. +export CALIBRE_INSTALL_LOCATION=/opt +# The download URL +DOWNLOAD_URL=https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py + +# Variablen für den Verfügbarkeitscheck +# Calibre Hauptseite und Downloadseite +CHECK_CALIBRE_DOWNLOAD_PAGE=http://calibre-ebook.com +CHECK_DOWNLOAD_URL=https://github.com + +# externe Programme welche benötigt werden +CURL=/usr/bin/curl +NOTIFY=/usr/bin/notify-send +AWK=/usr/bin/awk + diff --git a/calibre-autoupdate.h b/calibre-autoupdate.h new file mode 100644 index 0000000..c5208a0 --- /dev/null +++ b/calibre-autoupdate.h @@ -0,0 +1,65 @@ +# Calibre Auto Updater Configfile +# Copyright (C) 2013-2014 Leon Gaultier +# + + + +func_usage () +{ + echo "Usage: $PROGNAME [OPTION...]" + echo "Try '$PROGNAME --help' or '$PROGNAME -h' for more information." +} + +func_help () +{ + func_term_output + echo "Usage: $PROGNAME [OPTION...]" + echo "$PROGNAME -- the Calibre! Linux Edition calibre-autoupdater" + 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 checkt ob benötigte Programme vorhanden sind" + echo "" + echo -e "Report bugs to .\n"; +} + +func_version () +{ + echo "$PROGNAME: the Calibre! autoupdater v$VERSION" + echo "Copyright (C) Leon Gaultier 2013-2014. This program is distributed" + echo "in the hope that it will be useful, but WITHOUT ANY WARRANTY" + +} + +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 +} diff --git a/calibre-autoupdate_checks.h b/calibre-autoupdate_checks.h new file mode 100644 index 0000000..8b167ac --- /dev/null +++ b/calibre-autoupdate_checks.h @@ -0,0 +1,80 @@ +# Calibre Auto Updater Configfile +# Copyright (C) 2013-2014 Leon Gaultier +# + +func_check_stat () { # Funktion zum Check Verfügbarkeit der Downloadseiten und der Internetverbindung +# Test for network conection +echo -e "\033[1;34m Ich schau dann mal ob Dein Computer überhaupt ein Netzwerk hat :-)"; +for INTERFACE in $(ls /sys/class/net/ | grep -v lo); +do + if [[ $(cat /sys/class/net/$INTERFACE/carrier) = 1 ]]; then + ONLINE=1 + fi +done + +if [ $ONLINE ]; then + echo -e "\033[32m Oh Wunder! Habe ein Netzwerk gefunden. Verbinde über Interface $INTERFACE, + was nicht heißt das es geht :-P"; + 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 "\033[31m Fehler!!! Sieh Dir die verdammte Desktop Benachrichtigung an!"; + return 4 +fi +} + +func_check_run_calibre () { + CALIBRE_PID=`ps ax | grep /opt/calibre/bin/calibre | grep -v grep | awk '{printf $1}'` + + 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 + for (( i=60; i>0; i-- )); + do + echo -e "\033[31m noch \033[32m>>$i<< \033[31m Sekunden bis zum Calibre Programmende" + sleep 1 + clear + funct_term_output + done + kill -15 $CALIBRE_PID + return 0 + done + 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/'` + return 0 +} + + +func_check_prog () { + func_term_output + if test ! -f $CURL ; then + echo -e "\033[31mDu hast Curl nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2 + exit 1 + fi + + if test ! -f $AWK ; then + echo -e "\033[31mDu hast AWK nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2 + exit 1 + + if test ! -f $NOTIFY ; then + echo -e "\e[0;33mDu hast Notify-Send nich installiert, das Programm ist optional und wird"; >&2 + echo -e "für die Upatefunktion nicht unbedingt benötigt\n"; >&2 + sleep 10 + fi + + fi + echo -e "\033[32mAlle benötigten Programme sind installiert. Starte $PROGNAME ohne Optionen und" + echo -e "es wird nach einer aktuellen Calibre Version geschaut\n"; +} \ No newline at end of file From a1fa28fb315b5947033894bbca2ca99661c55e85 Mon Sep 17 00:00:00 2001 From: Leon Gaultier Date: Mon, 31 Mar 2014 18:39:37 +0200 Subject: [PATCH 2/4] =?UTF-8?q?kleine=20Anpassungen=20bei=20den=20Headerfi?= =?UTF-8?q?les=20f=C3=BCr=20die=20Funktionen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calibre-autoupdate | 11 +++++------ calibre-autoupdate.h | 2 -- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/calibre-autoupdate b/calibre-autoupdate index 1f14608..b1e2eae 100755 --- a/calibre-autoupdate +++ b/calibre-autoupdate @@ -78,12 +78,10 @@ source ./calibre-autoupdate.conf ################################# -##### Zusätzliche Funktionen ##### - -./calibre-autoupdate.h -./calibre-autoupdate_checks.h - +##### Zusätzliche Funktionen aus Headerfiles laden ##### +source ./calibre-autoupdate.h +source ./calibre-autoupdate_checks.h func_http_status_code () { @@ -113,7 +111,8 @@ func_update () { 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 + +func_term_output # Funktion für Konsolenausgabe func_http_status_code # Funktion hole einen http-status code diff --git a/calibre-autoupdate.h b/calibre-autoupdate.h index c5208a0..b353062 100644 --- a/calibre-autoupdate.h +++ b/calibre-autoupdate.h @@ -2,8 +2,6 @@ # Copyright (C) 2013-2014 Leon Gaultier # - - func_usage () { echo "Usage: $PROGNAME [OPTION...]" From 841e19e4579e3fc9f1a7741dd54a782a8865feec Mon Sep 17 00:00:00 2001 From: Leon Gaultier Date: Tue, 1 Apr 2014 20:58:03 +0200 Subject: [PATCH 3/4] Installer des Updaters ausgebaut und kleine Verbesserungen und Korrekturen am Updater --- CAU_Installer | 147 +++++++++++++++++++++++++++++++++++++++++++ calibre-autoupdate | 36 ++++++----- calibre-autoupdate.h | 2 +- 3 files changed, 168 insertions(+), 17 deletions(-) create mode 100755 CAU_Installer diff --git a/CAU_Installer b/CAU_Installer new file mode 100755 index 0000000..da76e50 --- /dev/null +++ b/CAU_Installer @@ -0,0 +1,147 @@ +#!/bin/bash + +# Programmversion +PROGNAME=`basename $0` +VERSION="0.3" +QUIET=0 + +func_term_output () { + ## Beginne mit der Ausgbe ## + tty -s && clear + echo -e "\033[44m \033[0m\033[1m $PROGNAME the Calibre-Autoupdate-Installer Version $VERSION\033[0m\n\033[44m \033[0m 2013-2014 by Leon Gaultier\n"; + return 0 +} + +func_usage () # Gibt Auskunft über Verwendung des Scriptes +{ + echo "Usage: $PROGNAME [OPTION...]" + echo "Try '$PROGNAME --help' or '$PROGNAME -h' for more information." +} + +func_help () # Listet alle Optionsschalter auf +{ + func_term_output + echo "Usage: $PROGNAME [OPTION...]" + echo "$PROGNAME -- the Calibre-Autoupdate-Installer (CAUI)" + echo "" + echo "Options:" + echo " -q, --quiet ohne Konsolenausgabe" + echo " -h, --help zeigt die Hilfe an" + echo " -V, --version gibt die Programmversion aus" + echo " -i, --install installiert den Calibre-Autoupdater (CAU)" + echo "" + echo -e "Report bugs to .\n"; +} + +func_version () # Versionsauskunft des Installers +{ + echo "$PROGNAME: the Calibre-Autoupdate-Installer (CAUI) v$VERSION" + echo "Copyright (C) Leon Gaultier 2013-2014. This program is distributed" + echo "in the hope that it will be useful, but WITHOUT ANY WARRANTY" + +} + +func_change_install_dir() # Funktion zur Abfrage des Installationsortes +{ +read -p "Wo soll der Calibre Updater installiert werden? [default /usr/local] " UPDATER_INSTALL_LOCATION + + if [ -z $UPDATER_INSTALL_LOCATION ]; then + UPDATER_INSTALL_LOCATION=/usr/local + fi +read -p "Wo befindet sich die Calibre Installation? [default /opt/calibre] " CALIBRE_INSTALL_LOCATION + + if [ -z $CALIBRE_INSTALL_LOCATION ]; then + CALIBRE_INSTALL_LOCATION=/opt/calibre + fi + +# Installationsfade in der Verzeichnishierarchie +INC=$UPDATER_INSTALL_LOCATION/include/ +ETC=$UPDATER_INSTALL_LOCATION/etc/ +BIN=$UPDATER_INSTALL_LOCATION/bin/ +} + +func_check_dir() # Install oder Update Calibre Updater, Check ob Calibre überhaupt installiert ist +{ + if test ! -d $CALIBRE_INSTALL_LOCATION ; then + echo -e "\n\033[1;31mKeine Calibre Installation unter $CALIBRE_INSTALL_LOCATION gefunden. Installation des Updaters wurde abgebrochen.\e[m\n"; >&2 + exit 1 + fi + + if test -f $BIN/calibre-autoupdate ; then + while ((!gueltig)); do + echo -e "\033[1;34m" + read -sn1 -t 30 -p "Der calibre-autoupdater ist bereits installiert. Möchtest Du ein Update durchführen? [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;31mDie installation des Updaters wurde abgebrochen.\e[m\n" + exit 1 + fi + fi +} + +func_install() # Installiert den Calibre Updater +{ +func_term_output +func_change_install_dir +func_check_dir + + if [ -w "$BIN" ]; then + echo -e "\n\033[1;34mDer Calibre Autoupdater wird nun unter $UPDATER_INSTALL_LOCATION installiert...\e[m"; + echo -e "\n\033[1;32mProgrammdatei wird nach $BIN kopiert\e[m"; sleep 3 + cp -v calibre-autoupdate $BIN + chmod -v 755 $BIN/calibre-autoupdate + echo -e "\n\033[1;32mDie Header-Dateien werden nach $INC kopiert\e[m"; sleep 3 + cp -v calibre-autoupdate.h calibre-autoupdate_checks.h $INC + chmod -v 644 $INC/calibre-autoupdate.h $INC/calibre-autoupdate_checks.h + echo -e "\n\033[1;32mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"; sleep 3 + cp -v calibre-autoupdate.conf $ETC + chmod -v 644 $ETC/calibre-autoupdate.conf + + else + echo -e "\n\033[1;34mDu hast kein Schreibrecht auf $UPDATER_INSTALL_LOCATION, daher wird SUDO versucht zu verwenden...\e[m"; + echo -e "\n\033[1;32mProgrammdatei wird nach $BIN kopiert\e[m\e[m"; sleep 3 + sudo cp -v calibre-autoupdate $BIN + sudo chmod -v 755 $BIN/calibre-autoupdate; + echo -e "\n\033[1;32mDie Header-Dateien werden nach $INC kopiert\e[m"; sleep 3 + sudo cp -v calibre-autoupdate.h calibre-autoupdate_checks.h $INC + sudo chmod -v 644 $INC/calibre-autoupdate.h $INC/calibre-autoupdate_checks.h; + echo -e "\n\033[1;32mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"; sleep 3 + sudo cp -v calibre-autoupdate.conf $ETC + sudo chmod -v 644 $ETC/calibre-autoupdate.conf; + fi + echo -e "\n\033[1;36mDer Calibre-Autoupdater wurde erfolgreich installiert\e[m\n" +} + +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case "$arg" in + --quiet | -q ) + QUIET=1 ;; + --help | -h ) + func_help; exit 0 ;; + --version | -V | -v ) + func_version; exit 0 ;; + --install | -i ) + func_install; exit 0 ;; + esac + +done +func_term_output +echo -e "\033[1;34mGib eine Option an! Oder verwende -h für Hilfe\n\e[m"; +exit 0 \ No newline at end of file diff --git a/calibre-autoupdate b/calibre-autoupdate index b1e2eae..ec7b010 100755 --- a/calibre-autoupdate +++ b/calibre-autoupdate @@ -52,6 +52,7 @@ # auf im Calibre Installationspfad hat oder nicht. # # v0.9 einbinden eines Konfigurationsfiles, auslagern einiger Funktionen in Headerfiles +# einbringen der Dateien in die Linux Verzeichnishierarchie # # TODO auslesen der Download URL von der Download Seite # kontrolle ob alle benötigten programme für das skript vorhanden sind @@ -60,13 +61,16 @@ ###################################### ###################################### +# Installationsfade in der Verzeichnishierarchie +INC=/usr/local/include/ +ETC=/usr/local/etc/ +BIN=/usr/local/bin/ + # Programmversion PROGNAME=`basename $0` -VERSION="0.8.99" +VERSION="0.9" QUIET=0 - - ################################# ######### CONFIGURATION ######### # Diese Version funktioniert für alle Linuxsysteme nur so lange @@ -74,23 +78,23 @@ QUIET=0 ################################# # Einlesen des Configfiles mit den Constanten für die Calibre Downloadseite und Hauptseite -source ./calibre-autoupdate.conf +source $ETC/calibre-autoupdate.conf ################################# ##### Zusätzliche Funktionen aus Headerfiles laden ##### -source ./calibre-autoupdate.h -source ./calibre-autoupdate_checks.h +source $INC/calibre-autoupdate.h +source $INC/calibre-autoupdate_checks.h func_http_status_code () { - echo -e "\033[1;34m Hole Status Code von \"$CHECK_CALIBRE_DOWNLOAD_PAGE\". Bitte warten."; + echo -e "\033[1;34m Hole Status Code von $CHECK_CALIBRE_DOWNLOAD_PAGE. Bitte warten."; stat_1=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_CALIBRE_DOWNLOAD_PAGE) - echo -e "\033[32m Status Codes von \"$CHECK_CALIBRE_DOWNLOAD_PAGE\" erhalten"; - echo -e "\033[1;34m Hole Status Code von \"$CHECK_DOWNLOAD_URL\". Bitte warten."; + echo -e "\033[32m Status Codes von $CHECK_CALIBRE_DOWNLOAD_PAGE erhalten"; + echo -e "\033[1;34m Hole Status Code von $CHECK_DOWNLOAD_URL. Bitte warten."; stat_2=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_DOWNLOAD_URL) - echo -e "\033[32m Status Codes von \"$CHECK_DOWNLOAD_URL\" erhalten"; + echo -e "\033[32m Status Codes von $CHECK_DOWNLOAD_URL erhalten"; return 0 } @@ -126,18 +130,18 @@ case $? 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\")";; + $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\")" + $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 "Du hast Schreibrechte auf \"$CALIBRE_INSTALL_LOCATION\" Das Update wird nun installiert..." + $NOTIFY "Du hast Schreibrechte auf $CALIBRE_INSTALL_LOCATION Das Update wird nun installiert..." echo -e "\033[1;34m" 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..." + $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[1;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')" fi @@ -147,10 +151,10 @@ case $? in ;; 2) - $NOTIFY "Versionsvergleich fehlgeschlagen!!! Die Calibre Homepage \"$CHECK_CALIBRE_DOWNLOAD_PAGE\" ist nicht verfügbar!" + $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!" + $NOTIFY "Update fehlgeschlagen!!! Die Download Seite $CHECK_DOWNLOAD_URL ist nicht verfügbar!" ;; 4) $NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!" diff --git a/calibre-autoupdate.h b/calibre-autoupdate.h index b353062..7777abf 100644 --- a/calibre-autoupdate.h +++ b/calibre-autoupdate.h @@ -12,7 +12,7 @@ func_help () { func_term_output echo "Usage: $PROGNAME [OPTION...]" - echo "$PROGNAME -- the Calibre! Linux Edition calibre-autoupdater" + echo "$PROGNAME -- the Calibre! Linux Edition calibre-autoupdater (CAU)" echo "" echo "Options:" echo " -q, --quiet ohne Konsolenausgabe" From 8af524a309d388234891bd6ef9e2b0529ee57ea3 Mon Sep 17 00:00:00 2001 From: Leon Gaultier Date: Wed, 2 Apr 2014 06:04:52 +0200 Subject: [PATCH 4/4] =?UTF-8?q?Diverse=20=C3=84nderungen=20im=20Installer,?= =?UTF-8?q?=20Abragen=20und=20Abfangen=20von=20Interaktionen.=20In=20der?= =?UTF-8?q?=20calibre-autoupdater=20wurden=20kleine=20Schreibfehler=20beri?= =?UTF-8?q?chtigt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CAU_Installer | 17 +++++++++++++---- calibre-autoupdate | 46 ++++++++++++++++++++++++---------------------- 2 files changed, 37 insertions(+), 26 deletions(-) mode change 100755 => 100644 calibre-autoupdate diff --git a/CAU_Installer b/CAU_Installer index da76e50..c6860f8 100755 --- a/CAU_Installer +++ b/CAU_Installer @@ -2,7 +2,7 @@ # Programmversion PROGNAME=`basename $0` -VERSION="0.3" +VERSION="0.6" QUIET=0 func_term_output () { @@ -29,6 +29,7 @@ func_help () # Listet alle Optionsschalter auf echo " -h, --help zeigt die Hilfe an" echo " -V, --version gibt die Programmversion aus" echo " -i, --install installiert den Calibre-Autoupdater (CAU)" + #echo " -u, --uninstall deinstalliert den Calibre-Autoupdater (CAU)" echo "" echo -e "Report bugs to .\n"; } @@ -67,8 +68,8 @@ func_check_dir() # Install oder Update Calibre Updater, Check ob Calibre überh exit 1 fi - if test -f $BIN/calibre-autoupdate ; then - while ((!gueltig)); do + if test -f $BIN/calibre-autoupdate ; then # Updater bereits installiert? + while ((!gueltig)); do # beginn der Ja/Nein Abfrage echo -e "\033[1;34m" read -sn1 -t 30 -p "Der calibre-autoupdater ist bereits installiert. Möchtest Du ein Update durchführen? [j/n] " answer echo -e "\e[m" @@ -107,7 +108,7 @@ func_check_dir else echo -e "\n\033[1;34mDu hast kein Schreibrecht auf $UPDATER_INSTALL_LOCATION, daher wird SUDO versucht zu verwenden...\e[m"; - echo -e "\n\033[1;32mProgrammdatei wird nach $BIN kopiert\e[m\e[m"; sleep 3 + echo -e "\n\033[1;32mProgrammdatei wird nach $BIN kopiert\e[m\e[m"; sudo cp -v calibre-autoupdate $BIN sudo chmod -v 755 $BIN/calibre-autoupdate; echo -e "\n\033[1;32mDie Header-Dateien werden nach $INC kopiert\e[m"; sleep 3 @@ -120,6 +121,12 @@ func_check_dir echo -e "\n\033[1;36mDer Calibre-Autoupdater wurde erfolgreich installiert\e[m\n" } +func_uninstall() +{ +echo +# ist geplant +} + while test "$#" -gt 0 do arg="$1" @@ -139,6 +146,8 @@ do func_version; exit 0 ;; --install | -i ) func_install; exit 0 ;; + --uninstall | -u ) + func_uninstall; exit 0;; esac done diff --git a/calibre-autoupdate b/calibre-autoupdate old mode 100755 new mode 100644 index ec7b010..0415571 --- a/calibre-autoupdate +++ b/calibre-autoupdate @@ -23,36 +23,38 @@ # # Versionsverlauf # -# v0.1 Body des Skriptes erstellt -# Abfrage neuste Version vorhanden -# Abfrage welche Version installiert -# Funktion Versionsvergleich -# Download und installation der neusten Version -# Desktopmeldungen hinzugefügt +# v0.1 Body des Skriptes erstellt +# Abfrage neuste Version vorhanden +# Abfrage welche Version installiert +# Funktion Versionsvergleich +# Download und installation der neusten Version +# Desktopmeldungen hinzugefügt # -# v0.2 Verbesserungen bei den Desktopmeldungen +# v0.2 Verbesserungen bei den Desktopmeldungen # -# v0.3 Funktion Check Verfügbarkeit der Downloadseiten hinzugefügt +# v0.3 Funktion Check Verfügbarkeit der Downloadseiten hinzugefügt # -# v0.4 Check Verfügbarkeit auf Test Netzwerk vorhanden und Auswertung erweitert -# diverse Kommentare hinzugefügt +# v0.4 Check Verfügbarkeit auf Test Netzwerk vorhanden und Auswertung erweitert +# diverse Kommentare hinzugefügt # -# v0.5 Funktion Check läuft noch eine Calibre Instanz mit Counter -# Ausgabe Texte verbessert und erweitert -# URL Statuscodes holen ins main verlagert. !TODO Soll eigene Funktion werden +# v0.5 Funktion Check läuft noch eine Calibre Instanz mit Counter +# Ausgabe Texte verbessert und erweitert +# URL Statuscodes holen ins main verlagert. !TODO Soll eigene Funktion werden # -# v0.6 Verbesserungen in der Terminalausgabe, Startausgabe ist eine eigene Funktion -# URL Status Code ist nun eine eigene Funktion +# v0.6 Verbesserungen in der Terminalausgabe, Startausgabe ist eine eigene Funktion +# URL Status Code ist nun eine eigene Funktion # -# v0.7 Der Updateprozes wurde in eine Prozedure geschrieben und die main Prozedure gibt, -# nur noch Hilfe und Verion aus oder startet sofort die Update Prozedure +# v0.7 Der Updateprozes wurde in eine Prozedure geschrieben und die main Prozedure gibt, +# nur noch Hilfe und Verion aus oder startet sofort die Update Prozedure # -# v0.8 Optionsschalter hinzugefügt, Kontrolle ob benötigte Programme vorhanden sind. -# Unterschiedliche Installationsart und -dialog je nach dem ob man Schreibrechte -# auf im Calibre Installationspfad hat oder nicht. +# v0.8 Optionsschalter hinzugefügt, Kontrolle ob benötigte Programme vorhanden sind. +# Unterschiedliche Installationsart und -dialog je nach dem ob man Schreibrechte +# auf im Calibre Installationspfad hat oder nicht. # -# v0.9 einbinden eines Konfigurationsfiles, auslagern einiger Funktionen in Headerfiles -# einbringen der Dateien in die Linux Verzeichnishierarchie +# v0.9 einbinden eines Konfigurationsfiles, auslagern einiger Funktionen in Headerfiles +# einbringen der Dateien in die Linux Verzeichnishierarchie +# v0.10 hinzufügen eines Installationsskriptes für den calibre-autoupdater, Installsript prüft +# vorhanden sein von calibre und des updaters und fragt nach Installationsort des Updaters # # TODO auslesen der Download URL von der Download Seite # kontrolle ob alle benötigten programme für das skript vorhanden sind