diff --git a/CAU_Installer b/CAU_Installer
deleted file mode 100755
index 8e82619..0000000
--- a/CAU_Installer
+++ /dev/null
@@ -1,263 +0,0 @@
-#!/bin/bash
-# Calibre Auto Updater Installscript
-# Copyright (C) 2013-2014 Leon Gaultier
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see
-
-
-# Programmversion
-PROGNAME=`basename $0`
-VERSION="0.14"
-
-##### Variablen deklaration #####
-# Downloadseite der Linuxinstallation
-DOWNLOAD_URL=https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py
-
-#################################
-
-
-
-func_term_output () { # einheitliche Terminalausgabe
- ## 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\e[m";
- return 0
-}
-
-func_usage () # Gibt Auskunft über Verwendung des Scriptes
-{
- func_term_output
- echo "Verwendung: $PROGNAME [OPTION...]"
- echo -e "Verwende $PROGNAME --help oder $PROGNAME -h für mehr Informationen.\n"
-}
-
-func_help () # Listet alle Optionsschalter auf
-{
- func_term_output
- echo "Verwende: $PROGNAME [OPTION...]"
- echo "$PROGNAME -- Der Calibre-Autoupdate-Installer (CAUI)"
- echo ""
- echo "Options:"
- echo " -h, --help zeigt die Hilfe an"
- echo " -V, --version gibt die Programmversion aus"
- echo " -i, --install installiert den Calibre-Autoupdater (CAU)"
- echo " --install_calibre installiert Calibre in der aktuellsten Version"
- echo ""
- echo -e "Sende Fehler an .\n";
-}
-
-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 -e "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE\n"
-
-}
-
-func_change_install_dir() # Funktion zur Abfrage des Installationsortes
-{
-read -p "Wo soll der Calibre-Autoupdater 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_INSTALL_LOCATION
-
- if [ -z $CALIBRE_INSTALL_LOCATION ]; then
- CALIBRE_INSTALL_LOCATION=/opt
- fi
-# Verzeichnishierarchie im Installationsort
-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/calibre ; then
- echo -e "\n\033[31mKeine Calibre Installation unter $CALIBRE_INSTALL_LOCATION gefunden.\033[1;34m"
- while ((!gueltig)); do # beginn der Ja/Nein Abfrage
- echo -e "\033[1;34m"
- read -sn1 -t 30 -p "Möchtest Du Calibre jetzt installieren? [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 Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
- exit 1
- fi
- echo -e "\033[1;34mNach der Calibre Installation wird die Installation des Calibre Autoupdaters durchgeführt\e[m"
- sleep 3
- func_install_calibre
- exit 0
- fi
-
- 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"
- 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 Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
- exit 1
- fi
- fi
-}
-
-func_progressbar()
-{
- echo -e -n $'\033[34m------------------------------------------------------------------------- 100%\r'
- echo -e -n "\033[32m0% "
- 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%" ;;
- esac
- sleep 0.07
- done
- echo -e "\e[m"
-}
-
-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;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"
- chmod 755 $BIN/calibre-autoupdate
- func_progressbar
- echo -e "\n\033[1;32mDie 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;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"
- sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
- chmod 644 $ETC/calibre-autoupdate.conf
- func_progressbar
-}
-
-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;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"
- sudo chmod 755 $BIN"calibre-autoupdate"
- func_progressbar
- 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"
- 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"
- sudo sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
- sudo chmod 644 $ETC"calibre-autoupdate.conf";
- func_progressbar
-}
-
-func_install_process() # Installiert den Calibre Updater
-{
-func_term_output
-func_change_install_dir
-func_check_dir
-
- if [ -w "$UPDATER_INSTALL_LOCATION" ]; then
- func_install_noroot
- else
- func_install_root
- fi
- echo -e "\n\n\033[1;36mDer Calibre-Autoupdater wurde erfolgreich installiert und"
- echo -e "kann nun mit calibre-update oder $BIN"calibre-update" aufgerufen werden\e[m\n"
-}
-
-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
- func_install_process
-}
-
-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
- --help | -h )
- func_help; exit 0 ;;
- --version | -V | -v )
- func_version; exit 0 ;;
- --install | -i | -I )
- func_install_process; exit 0 ;;
- --install_calibre )
- func_install_calibre; exit 0
- esac
-
-done
-func_term_output
-func_usage
-echo -e "\e[m"
-exit 0
\ No newline at end of file
diff --git a/CAU_Installer.h b/CAU_Installer.h
new file mode 100644
index 0000000..bf15280
--- /dev/null
+++ b/CAU_Installer.h
@@ -0,0 +1,61 @@
+# Calibre Auto Updater Header File
+# Copyright (C) 2013-2014 Leon Gaultier
+#
+
+func_term_output () { # einheitliche Terminalausgabe
+ ## Beginne mit der Ausgbe ##
+ tty -s && clear
+ echo -e "\033[44m \033[0m\033[1m $PROGNAME: Der Calibre-Autoupdate-Installer Version $VERSION\033[0m\n\033[44m \033[0m 2013-2014 by Leon Gaultier\n\e[m";
+ return 0
+}
+
+func_usage () { # Gibt Auskunft über Verwendung des Scriptes
+ func_term_output
+ echo "Verwendung: $PROGNAME [OPTION...]"
+ echo -e "Verwende $PROGNAME --help oder $PROGNAME -h für mehr Informationen.\n"
+ return 0
+}
+
+func_help () { # Listet alle Optionsschalter auf
+ func_term_output
+ echo "Verwende: $PROGNAME [OPTION...]"
+ echo "$PROGNAME -- Der Calibre-Autoupdate-Installer (CAUI)"
+ echo ""
+ echo "Options:"
+ 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 "Sende Fehler an .\n"
+ return 0
+}
+
+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 -e "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE\n"
+ return 0
+}
+
+func_progressbar() {
+ echo -e -n $'\033[34m------------------------------------------------------------------------- 100%\r'
+ echo -e -n "\033[32m0% "
+ 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%" ;;
+ esac
+ sleep 0.07
+ done
+ echo -e "\e[m"
+ return 0
+}
\ No newline at end of file
diff --git a/calibre-autoupdate b/calibre-autoupdate
index 5fd5cea..9ccdd30 100644
--- a/calibre-autoupdate
+++ b/calibre-autoupdate
@@ -71,123 +71,131 @@
# 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.
+#
+# 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
+# Die Prüfung ob Calibre noch gestartet ist wenn ein Update gemacht wird ist nun simpler geschrieben,
+# und es wird nicht mehr hart beendet sondern gewartet bis der Benutzer Calibre beendet
+# Die Calibre Installation ist vom Installer in das Updaterskript gewandert, und im Zuge einer Calibre-
+# installation wird automatisch die Konfigurationsdatei des Updaters angepasst (übergabe CalibreInstallOrt)
+# Es wird wieder geprüft ob Calibre installiert ist bevor der Updater gestartet wird
#
# TODO Auslesen der Download URL von der Download Seite
# kontrolle ob alle benötigten programme für das skript vorhanden sind
#
#
-######################################
-######################################
-
-# Installationsfade in der Verzeichnishierarchie
-ETC=_-ETC-_
+##########################################################
+##########################################################
# 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
#################################
+# Installationsfade in der Verzeichnishierarchie
+ETC=_-ETC-_
# 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 $INC/calibre-autoupdate.h
source $INC/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"
-
-
-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
- 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)
- $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"
+#######################################################
+
+
+func_update () {
+ 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_VERCOMP_RESULT in
+ 0)
+ $NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand (Version $CURRENT_VERSION).";;
+ 1)
+ $NOTIFY "Uh Oh! Deine Calibre Version ist aktueller wie die letzte Verfügbare! (Installiert: Version $CURRENT_VERSION, Letzte Verfügbare: Version $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 $LATEST_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 )
- func_uninstall; exit 0;;
- --uninstall_calibre )
+ --uninstall | -U | -u )
+ func_uninstall; exit 0 ;;
+ --install-calibre )
+ func_install_calibre; exit 0 ;;
+ --uninstall-calibre )
func_uninstall_calibre; exit 0 ;;
- esac
-
+ esac
done
func_check_prog
func_update
diff --git a/calibre-autoupdate.conf b/calibre-autoupdate.conf
index 7a27e1a..d91a94d 100644
--- a/calibre-autoupdate.conf
+++ b/calibre-autoupdate.conf
@@ -3,10 +3,10 @@
#
# Calibre Download Seite URL.
-export CALIBRE_DOWNLOAD_PAGE=http://calibre-ebook.com/download_linux
-# The location of the installed application.
-export CALIBRE_INSTALL_LOCATION=_-CALIBRE_INSTALL_LOCATION-_
-# The download URL
+CALIBRE_DOWNLOAD_PAGE=http://calibre-ebook.com/download_linux
+# Installationsor von Calibre.
+CALIBRE_INSTALL_LOCATION=_-CALIBRE_INSTALL_LOCATION-_
+# die Download URL
DOWNLOAD_URL=https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py
# Variablen für den Verfügbarkeitscheck
diff --git a/calibre-autoupdate.h b/calibre-autoupdate.h
index 9329386..5857715 100644
--- a/calibre-autoupdate.h
+++ b/calibre-autoupdate.h
@@ -2,14 +2,21 @@
# Copyright (C) 2013-2014 Leon Gaultier
#
-func_usage ()
-{
- echo "Verwendung: $PROGNAME [OPTION...]"
- echo "Verwende '$PROGNAME --help' oder '$PROGNAME -h' für mehr Informationen."
+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_help ()
-{
+func_usage () {
+ func_term_output
+ echo "Verwendung: $PROGNAME [OPTION...]"
+ echo "Verwende '$PROGNAME --help' oder '$PROGNAME -h' für mehr Informationen."
+ return 0
+}
+
+func_help () {
func_term_output
echo "Verwende: $PROGNAME [OPTION...]"
echo "$PROGNAME -- Der Calibre! Linux Edition calibre-autoupdater (CAU)"
@@ -19,66 +26,58 @@ func_help ()
echo " -V, --version gibt die Programmversion aus"
echo " -c, --check kontrolliert ob benötigte Programme vorhanden sind"
echo " -u, --uninstall deinstalliert den Calibre-Autoupdater"
- echo " --uninstall_calibre deinstalliert das Calibre Programm"
+ echo " --install-calibre installiert Calibre in der aktuellsten Version"
+ echo " --uninstall-calibre deinstalliert das Calibre Programm"
echo ""
echo -e "Sende Fehler an .\n";
+ return 0
}
-func_version ()
-{
+func_version () {
func_term_output
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"
-
+ return 0
}
-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_progressbar()
-{
+func_progressbar() {
echo -e -n $'\033[34m------------------------------------------------------------------------- 100%\r'
echo -e -n "\033[32m0% "
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_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
if (( ! result )); then
echo -e "\033[1;31mDie DeInstallation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
- exit 1
+ exit 0
fi
echo -e "\033[1;31mDer Calibre-Autoupdater wird nun deinstalliert.\e[m"
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
@@ -92,29 +91,29 @@ 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_uninstall_calibre() {
+ 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"
+ exit 0
+ 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
+ exit 0
fi
echo -e "\033[1;34mCalibre wird nun deinstalliert.\e[m"
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
@@ -122,6 +121,37 @@ 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() {
+# Installationsort von Calibre
+ func_term_output
+ read -p "Wohin soll Calibre installiert werden? [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 "Wohin soll Calibre installiert werden? [default /opt] " CALIBRE_INSTALL_LOCATION
+ done
+ if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
+ echo -e "\n\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')"
+ if [ ! -w "$ECT" ]; then
+ echo -e "\033[1;34mDu hast kein Schreibrecht auf $ETC. Die Updater Konfigurationsdatei wird mit SUDO angepasst. Bitte gib hierzu Dein Userpasswort im Terminal ein...\n\e[m"
+ sudo sed -i "s/CALIBRE_INSTALL_LOCATION=.*/CALIBRE_INSTALL_LOCATION=${CALIBRE_INSTALL_LOCATION//\//\/}/" $ETC"calibre-autoupdate.conf"
+ else
+ sed -i "s/CALIBRE_INSTALL_LOCATION=.*/CALIBRE_INSTALL_LOCATION=${CALIBRE_INSTALL_LOCATION//\//\/}/" $ETC"calibre-autoupdate.conf"
+ fi
+ else
+ echo -e "\033[1;34mDu hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION."
+ echo -e "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')"
+ sudo sed -i "s/CALIBRE_INSTALL_LOCATION=.*/CALIBRE_INSTALL_LOCATION=${CALIBRE_INSTALL_LOCATION//\//\/}/" $ETC"calibre-autoupdate.conf"
+ fi
+ echo -e "\n\n\033[1;32mHerzlichen 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 6e919ea..fdcb222 100644
--- a/calibre-autoupdate_checks.h
+++ b/calibre-autoupdate_checks.h
@@ -3,120 +3,100 @@
#
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
+ 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_vercomp () { # Funktion zum Versionsvergleich
- if [[ $1 == $2 ]]
- then
- 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
- 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}'`
-
- 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
- echo -e -n "\033[31m noch \033[32m>>$i<< \033[31m Sekunden bis zum Calibre Programmende\r\e[m"
- sleep 1
+ while [ `ps ax | grep /opt/calibre/bin/calibre | grep -v grep | awk '{printf $1}'` ]; do
+ $NOTIFY "Um das Update installieren zu können, muss Calibre geschlossen werden..."
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
+ #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
+ 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
- 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_check_prog () { # Schaut ob Calibre und benötigte Programme installiert sind
+ func_term_output
+ if [ ! -d $CALIBRE_INSTALL_LOCATION/calibre ]; then
+ $NOTIFY "Check auf Calibre-Updates nicht möglich! Calibre ist gar nicht installiert. Bitte verwende calibre-autoupdate --install-calibre um Calibre zu installieren"
+ exit 0
+ fi
+ if [ ! -f $CURL ]; then
+ $NOTIFY "Du hast Curl nich installiert, es wird aber für die Updatefunktion benötigt"
+ exit 0
+ fi
+ if [ ! -f $AWK ]; then
+ $NOTIFY "Du hast AWK nich installiert, es wird aber für die Updatefunktion benötigt"
+ exit 0
+ fi
+ if [ ! -f /usr/bin/notify-send ]; 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";
+ return 0
}
\ No newline at end of file