Merge branch 'devel' into stable
Conflicts: CAU_Installer Version 0.20
This commit is contained in:
commit
4e8c208c7e
263
CAU_Installer
263
CAU_Installer
@ -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 <http://www.gnu.org/licenses/>
|
||||
|
||||
|
||||
# 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 <leongaultier@gmail.com>.\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
|
61
CAU_Installer.h
Normal file
61
CAU_Installer.h
Normal file
@ -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 <leongaultier@gmail.com>.\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
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 <leongaultier@gmail.com>.\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
|
||||
}
|
@ -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
|
||||
}
|
Loading…
Reference in New Issue
Block a user