die sed Befehle müssen weder rein. Sonst funktioniert das Script nur wenn es vom Installordner aus aufgerufen wird. Also wieder per sed die Installpfade eintragen lassen

This commit is contained in:
Leon Gaultier 2014-04-10 16:49:39 +02:00
parent 8db5d0e01f
commit 476b2e87a6
4 changed files with 249 additions and 234 deletions

View File

@ -18,7 +18,7 @@
# Programmversion # Programmversion
PROGNAME=`basename $0` PROGNAME=`basename $0`
VERSION="0.14.99.5" VERSION="0.14.99.6"
##### Variablen deklaration ##### ##### Variablen deklaration #####
# Downloadseite der Linuxinstallation # Downloadseite der Linuxinstallation
@ -70,6 +70,7 @@ func_install_noroot()
func_progressbar func_progressbar
echo -e "\n\033[1;36mDie Konfigurations-Dateien werden nach $ETC kopiert\e[m" echo -e "\n\033[1;36mDie Konfigurations-Dateien werden nach $ETC kopiert\e[m"
cp calibre-autoupdate.conf $ETC; chmod 644 $ETC"calibre-autoupdate.conf"; cp calibre-autoupdate.conf $ETC; chmod 644 $ETC"calibre-autoupdate.conf";
sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf" # Ort der Calibreinstall
func_progressbar func_progressbar
return 0 return 0
} }
@ -77,7 +78,7 @@ func_install_noroot()
func_install_root() func_install_root()
{ {
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;34mDu hast kein Schreibrecht auf $UPDATER_INSTALL_LOCATION, daher wird SUDO versucht zu verwenden...\e[m";
sudo echo -e "\n\033[1;36mProgramm-Dateien wird nach $BIN kopiert\e[m\e[m" sudo echo -e "\n\033[1;36mDie Programm-Dateien werden nach $BIN kopiert\e[m\e[m"
if [ ! -d $BIN ]; then sudo mkdir $BIN; fi; if [ ! -d $ETC ]; then sudo mkdir $ETC; fi; if [ ! -d $INC ]; then sudo mkdir $INC; fi if [ ! -d $BIN ]; then sudo mkdir $BIN; fi; if [ ! -d $ETC ]; then sudo mkdir $ETC; fi; if [ ! -d $INC ]; then sudo mkdir $INC; fi
sudo cp calibre-autoupdate $BIN; sudo chmod 755 $BIN"calibre-autoupdate" sudo cp calibre-autoupdate $BIN; sudo chmod 755 $BIN"calibre-autoupdate"
sudo sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate" # Der Installer übergibt die Versionsnummer sudo sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate" # Der Installer übergibt die Versionsnummer
@ -85,8 +86,9 @@ func_install_root()
echo -e "\n\033[1;36mDie Header-Dateien werden nach $INC kopiert\e[m" 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" sudo cp calibre-autoupdate.h calibre-autoupdate_checks.h $INC; sudo chmod 644 $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h"
func_progressbar func_progressbar
echo -e "\n\033[1;36mDie Konfigurations-Dateien wird nach $ETC kopiert\e[m" echo -e "\n\033[1;36mDie Konfigurations-Dateien werden nach $ETC kopiert\e[m"
sudo cp calibre-autoupdate.conf $ETC; sudo chmod 644 $ETC"calibre-autoupdate.conf"; sudo cp calibre-autoupdate.conf $ETC; sudo chmod 644 $ETC"calibre-autoupdate.conf";
sudo sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf" # Ort der Calibreinstall
func_progressbar func_progressbar
return 0 return 0
} }
@ -100,7 +102,7 @@ func_install_process() # Installiert den Calibre Updater
else else
func_install_root func_install_root
fi fi
echo -e "\n\n\033[1;36mDer Calibre-Autoupdater wurde erfolgreich installiert und" echo -e "\n\n\033[1;34mDer Calibre-Autoupdater wurde erfolgreich installiert und"
echo -e "kann nun mit \"calibre-update\" oder \"$BIN"calibre-update"\" aufgerufen werden\e[m\n" echo -e "kann nun mit \"calibre-update\" oder \"$BIN"calibre-update"\" aufgerufen werden\e[m\n"
return 0 return 0
} }

View File

@ -80,54 +80,53 @@
# der Installer kontrolliert ob am Installationsort des Updaters die Verzeichnisstrucktur /bin /include /etc # der Installer kontrolliert ob am Installationsort des Updaters die Verzeichnisstrucktur /bin /include /etc
# vorhanden ist und wenn nicht legt er sie an. # 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
#
# TODO Auslesen der Download URL von der Download Seite # TODO Auslesen der Download URL von der Download Seite
# kontrolle ob alle benötigten programme für das skript vorhanden sind # kontrolle ob alle benötigten programme für das skript vorhanden sind
# #
# #
###################################### ##########################################################
###################################### ##########################################################
# Programmversion # Programmversion
PROGNAME=`basename $0` PROGNAME=`basename $0`
VERSION="_-VERSION-_" VERSION="_-VERSION-_"
################################# #################################
######### CONFIGURATION ######### ######### CONFIGURATION #########
# Diese Version funktioniert für alle Linuxsysteme nur so lange # Diese Version funktioniert für alle Linuxsysteme nur so lange
# bis Veränderungen auf der Internetseite durchgeführt wurden # bis Veränderungen auf der Internetseite durchgeführt wurden
################################# #################################
# Einlesen des Configfiles mit den Variablen für die Calibre Downloadseite, Hauptseite # Einlesen des Configfiles mit den Variablen für die Calibre Downloadseite, Hauptseite
# und den Installationsfaden in der Verzeichnishierarchie # und den Installationsfaden in der Verzeichnishierarchie
source ../etc/calibre-autoupdate.conf source ../etc/calibre-autoupdate.conf
################################# #################################
##### Zusätzliche Funktionen aus Headerfiles laden ##### ##### Zusätzliche Funktionen aus Headerfiles laden #####
source ../include/calibre-autoupdate.h source ../include/calibre-autoupdate.h
source ../include/calibre-autoupdate_checks.h source ../include/calibre-autoupdate_checks.h
####################################################### #######################################################
####################################################### #######################################################
## main vom Script --- Start des Updater Skripts
func_update () { func_update () {
# Wenn eine grafische Oberfläche vorhanden ist, wird u.a. "notify-send" für Benachrichtigungen verwendet, ansonsten immer "echo" # Wenn eine grafische Oberfläche vorhanden ist, wird u.a. "notify-send" für Benachrichtigungen verwendet, ansonsten immer "echo"
NOTIFY="echo" NOTIFY="echo"
[ -n "$DISPLAY" ] && NOTIFY="notify-send -t 10000 -i /usr/share/icons/hicolor/256x256/apps/calibre-gui.png Calibre-Auto-Updater" [ -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="$?"
func_term_output # ruft die Funktion für Konsolenausgabe auf case "$CHECK_STATE_RESULT" in
func_check_stat # ruft die Funktion "check Status Netzwerk und Downloadadressen" auf
CHECK_STATE_RESULT="$?"
case "$CHECK_STATE_RESULT" in
1) 1)
func_check_version func_check_version
CHECK_VERCOMP_RESULT="$?" CHECK_VERCOMP_RESULT="$?"
@ -141,7 +140,6 @@ case "$CHECK_STATE_RESULT" in
$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 # Installiert die aktuellste verfügbare Version von der Calibre Homepage
func_check_run_calibre # Aufruf der Funktion ob Calibre gestartet ist func_check_run_calibre # Aufruf der Funktion ob Calibre gestartet ist
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
$NOTIFY "Das Update wird nun installiert..." $NOTIFY "Das Update wird nun installiert..."
echo -e "\e[m" echo -e "\e[m"
@ -151,29 +149,25 @@ case "$CHECK_STATE_RESULT" in
echo -e "\e[m" 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')" 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 fi
$NOTIFY "Calibre wurde auf die neuste Version aktuallisiert." $NOTIFY "Calibre wurde auf die neuste Version aktuallisiert.";;
;;
esac esac
;; ;;
2) 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) 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) 4)
$NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!" $NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!";;
;; esac
esac echo -e "\e[m"
echo -e "\e[m" return 0
} }
#### Main Funktion ####
while test "$#" -gt 0 while test "$#" -gt 0
do do
arg="$1" arg="$1"
shift shift
case $arg in case $arg in
-*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; -*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;; *) optarg= ;;
@ -191,7 +185,6 @@ do
--uninstall_calibre ) --uninstall_calibre )
func_uninstall_calibre; exit 0 ;; func_uninstall_calibre; exit 0 ;;
esac esac
done done
func_check_prog func_check_prog
func_update func_update

View File

@ -2,10 +2,20 @@
# Copyright (C) 2013-2014 Leon Gaultier # Copyright (C) 2013-2014 Leon Gaultier
# #
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_usage () func_usage ()
{ {
func_term_output
echo "Verwendung: $PROGNAME [OPTION...]" echo "Verwendung: $PROGNAME [OPTION...]"
echo "Verwende '$PROGNAME --help' oder '$PROGNAME -h' für mehr Informationen." echo "Verwende '$PROGNAME --help' oder '$PROGNAME -h' für mehr Informationen."
return 0
} }
func_help () func_help ()
@ -22,6 +32,7 @@ func_help ()
echo " --uninstall_calibre deinstalliert das Calibre Programm" echo " --uninstall_calibre deinstalliert das Calibre Programm"
echo "" echo ""
echo -e "Sende Fehler an <leongaultier@gmail.com>.\n"; echo -e "Sende Fehler an <leongaultier@gmail.com>.\n";
return 0
} }
func_version () func_version ()
@ -30,13 +41,6 @@ func_version ()
echo "$PROGNAME: Der Calibre! autoupdater v$VERSION" echo "$PROGNAME: Der Calibre! autoupdater v$VERSION"
echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden," echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden,"
echo -e "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE\n" echo -e "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE\n"
}
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 return 0
} }
@ -61,6 +65,7 @@ func_progressbar()
echo -e "\e[m" echo -e "\e[m"
return 0 return 0
} }
func_uninstall() func_uninstall()
{ {
func_term_output func_term_output
@ -75,10 +80,9 @@ func_uninstall()
*) gueltig=0 ;; *) gueltig=0 ;;
esac esac
done done
echo
if (( ! result )); then if (( ! result )); then
echo -e "\033[1;31mDie DeInstallation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n" echo -e "\033[1;31mDie DeInstallation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
exit 1 break
fi fi
echo -e "\033[1;31mDer Calibre-Autoupdater wird nun deinstalliert.\e[m" echo -e "\033[1;31mDer Calibre-Autoupdater wird nun deinstalliert.\e[m"
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
@ -92,13 +96,15 @@ func_uninstall()
fi fi
func_progressbar func_progressbar
echo -e "\n\033[1;32mDer Calibre-Autoupdater wurde deinstalliert. Schade das Du ihn nicht weiter verwendest\n\e[m" 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_uninstall_calibre()
{ {
func_term_output func_term_output
if test ! -d $CALIBRE_INSTALL_LOCATION/calibre ; then 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" echo -e "\033[1;31mEs konnte keine Calibre Installation gefunden werden. Die DeInstallation wurde abgebrochen\e[m\n"
exit 1 break
fi fi
while ((!gueltig)); do # beginn der Ja/Nein Abfrage 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!" echo -e "\033[1;34mMöchtest Du Calibre wirklich DeInstallieren? Calibre kann dann nicht mehr verwendet werden!"
@ -111,10 +117,9 @@ func_uninstall_calibre()
*) gueltig=0 ;; *) gueltig=0 ;;
esac esac
done done
echo
if (( ! result )); then if (( ! result )); then
echo -e "\n\033[1;31mDie DeInstallation von Calibre wurde durch Dich abgebrochen.\e[m\n" echo -e "\n\033[1;31mDie DeInstallation von Calibre wurde durch Dich abgebrochen.\e[m\n"
exit 1 break
fi fi
echo -e "\033[1;34mCalibre wird nun deinstalliert.\e[m" echo -e "\033[1;34mCalibre wird nun deinstalliert.\e[m"
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
@ -126,28 +131,17 @@ func_uninstall_calibre()
return 0 return 0
} }
func_install_calibre() func_install_calibre()
{ {
if [ ! $CALIBRE_INSTALL_LOCATION ]; then # Installationsort von Calibre
func_term_output read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION
read -p "Wohin soll Calibre installiert werden? [default /opt] " CALIBRE_INSTALL_LOCATION
fi
if [ -z $CALIBRE_INSTALL_LOCATION ]; then if [ -z $CALIBRE_INSTALL_LOCATION ]; then
CALIBRE_INSTALL_LOCATION=/opt CALIBRE_INSTALL_LOCATION=/opt
fi 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 "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION
done
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
echo -e "\033[1;32mCalibre wird nun installiert...\n\e[m" 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')" 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')"
@ -155,7 +149,7 @@ func_install_calibre()
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" 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')" 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 fi
echo -e "\n\n\033[1;36mHerzlichen Glückwunsch. Calibre wurde installiert und kann nun mit "calibre" verwendet werden.\n\033[0m" echo -e "\n\n\033[1;36mHerzlichen Glückwunsch. Calibre wurde unter $CALIBRE_INSTALL_LOCATION installiert"
sleep 5 echo -e "und kann nun mit \"calibre\" verwendet werden.\n\033[0m"
return 0
} }

View File

@ -2,7 +2,8 @@
# Copyright (C) 2013-2014 Leon Gaultier # Copyright (C) 2013-2014 Leon Gaultier
# #
func_http_status_code () { func_http_status_code ()
{
echo -e "\033[1;34m Hole Status Code von $CHECK_CALIBRE_DOWNLOAD_PAGE. Bitte warten.\e[m" 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) stat_1=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_CALIBRE_DOWNLOAD_PAGE)
func_progressbar func_progressbar
@ -14,17 +15,17 @@ func_http_status_code () {
return 0 return 0
} }
func_check_stat () { # Funktion zum Check Verfügbarkeit der Downloadseiten und der Internetverbindung 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" # Test for network conection
for INTERFACE in $(ls /sys/class/net/ | grep -v lo) echo -e "\n\033[1;34m Suche nach vorhandenen Netzwerk für die Verbindung zum Internet :-)\e[m"
do for INTERFACE in $(ls /sys/class/net/ | grep -v lo); do
if [[ $(cat /sys/class/net/$INTERFACE/carrier) = 1 ]]; then if [[ $(cat /sys/class/net/$INTERFACE/carrier) = 1 ]]; then
ONLINE=1 ONLINE=1
fi fi
done done
func_progressbar func_progressbar
if [ $ONLINE ]; then if [ $ONLINE ]; then
echo -e "\033[32m Es wurde ein Netzwerkinterface gefunden. Verbinde über Interface $INTERFACE\n\e[m" echo -e "\033[32m Es wurde ein Netzwerkinterface gefunden. Verbinde über Interface $INTERFACE\n\e[m"
func_http_status_code func_http_status_code
if [[ $stat_1 -eq 200 && $stat_2 -eq 200 ]]; then if [[ $stat_1 -eq 200 && $stat_2 -eq 200 ]]; then
@ -34,22 +35,34 @@ if [ $ONLINE ]; then
else else
return 3 return 3
fi fi
else else
echo -e "\n\033[31m Fehler!!! Bitte schau Dir die Desktop Benachrichtigung an!\e[m" echo -e "\n\033[31m Fehler!!! Bitte schau Dir die Desktop Benachrichtigung an!\e[m"
return 4 return 4
fi fi
return 0
} }
func_check_run_calibre () { func_check_run_calibre () {
CALIBRE_PID=`ps ax | grep /opt/calibre/bin/calibre | grep -v grep | awk '{printf $1}'` CALIBRE_PID=`ps ax | grep /opt/calibre/bin/calibre | grep -v grep | awk '{printf $1}'`
while [ $CALIBRE_PID ] while [ $CALIBRE_PID ]; do
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!!!" $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 sleep 3
echo "" echo ""
for (( i=60; i>0; i-- )) for (( i=60; i>0; i-- )); do
do
echo -e -n "\033[31m noch \033[32m>>$i<< \033[31m Sekunden bis zum Calibre Programmende\r\e[m" echo -e -n "\033[31m noch \033[32m>>$i<< \033[31m Sekunden bis zum Calibre Programmende\r\e[m"
sleep 1 sleep 1
done done
@ -59,59 +72,72 @@ func_check_run_calibre () {
return 0 return 0
} }
func_check_version () { func_check_version () {
#Ermitteln der letzten aktuell verfügbaren 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/'` 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. #Ermitteln der aktuell installierten Version.
CURRENT_VERSION=`calibre --version | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` CURRENT_VERSION=`calibre --version | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'`
if [[ $CURRENT_VERSION == $LATEST_VERSION ]] if [[ $CURRENT_VERSION == $LATEST_VERSION ]]; then
then
return 0 return 0
fi fi
local IFS=. local IFS=.
local i ver1=($CURRENT_VERSION) ver2=($LATEST_VERSION) local i ver1=($CURRENT_VERSION) ver2=($LATEST_VERSION)
# fill empty fields in ver1 with zeros # fill empty fields in ver1 with zeros
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)) for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do
do
ver1[i]=0 ver1[i]=0
done done
for ((i=0; i<${#ver1[@]}; i++)) for ((i=0; i<${#ver1[@]}; i++)); do
do if [[ -z ${ver2[i]} ]]; then
if [[ -z ${ver2[i]} ]]
then
# fill empty fields in ver2 with zeros # fill empty fields in ver2 with zeros
ver2[i]=0 ver2[i]=0
fi fi
if ((10#${ver1[i]} > 10#${ver2[i]})) if ((10#${ver1[i]} > 10#${ver2[i]})); then
then
return 1 return 1
fi fi
if ((10#${ver1[i]} < 10#${ver2[i]})) if ((10#${ver1[i]} < 10#${ver2[i]})); then
then
return 2 return 2
fi fi
done done
return 0 return 0
} }
func_check_prog () { func_check_prog () {
func_term_output func_term_output
if test ! -f $CURL ; then if [ ! -f $CURL ]; then
$NOTIFY "Du hast Curl nich installiert, es wird aber für die Updatefunktion benötigt" $NOTIFY "Du hast Curl nich installiert, es wird aber für die Updatefunktion benötigt"
exit 1 break
fi fi
if [ ! -f $AWK ]; then
if test ! -f $AWK ; then
$NOTIFY "Du hast AWK nich installiert, es wird aber für die Updatefunktion benötigt" $NOTIFY "Du hast AWK nich installiert, es wird aber für die Updatefunktion benötigt"
exit 1 break
fi
if test ! -f $NOTIFY ; then if [ ! -f $NOTIFY ]; then
echo -e "\e[0;33mDu hast Notify-Send nich installiert, das Programm ist optional und wird\e[m" 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" echo -e "für die Upatefunktion nicht unbedingt benötigt\n\e[m"
sleep 10 sleep 10
fi
fi fi
echo -e "\033[32mAlle benötigten Programme sind installiert. Starte $PROGNAME ohne Optionen und" 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"; echo -e "es wird nach einer aktuellen Calibre Version gesucht\n\e[m";