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,118 +80,111 @@
# 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 1)
CHECK_STATE_RESULT="$?" func_check_version
CHECK_VERCOMP_RESULT="$?"
case "$CHECK_STATE_RESULT" in case $CHECK_VERCOMP_RESULT in
1) 0)
func_check_version $NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand ($CURRENT_VERSION).";;
CHECK_VERCOMP_RESULT="$?" 1)
$NOTIFY "Uh Oh! Deine Calibre Version ist aktueller wie die letzte Verfügbare! (Installiert: $CURRENT_VERSION, Letzte Verfügbare: $LATEST_VERSION)";;
case $CHECK_VERCOMP_RESULT in 2)
0) $NOTIFY "Ein Calibre Update ist verfügbar. (Installiert: $CURRENT_VERSION, letzte Verfügbare: $LATEST_VERSION)"
$NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand ($CURRENT_VERSION).";; # Installiert die aktuellste verfügbare Version von der Calibre Homepage
1) func_check_run_calibre # Aufruf der Funktion ob Calibre gestartet ist
$NOTIFY "Uh Oh! Deine Calibre Version ist aktueller wie die letzte Verfügbare! (Installiert: $CURRENT_VERSION, Letzte Verfügbare: $LATEST_VERSION)";; if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
2) $NOTIFY "Das Update wird nun installiert..."
$NOTIFY "Ein Calibre Update ist verfügbar. (Installiert: $CURRENT_VERSION, letzte Verfügbare: $LATEST_VERSION)" echo -e "\e[m"
# Installiert die aktuellste verfügbare Version von der Calibre Homepage 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')"
func_check_run_calibre # Aufruf der Funktion ob Calibre gestartet ist else
$NOTIFY "Du hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION. Das Update wird mit SUDO installiert. Bitte gib hierzu Dein Userpasswort im Terminalfenster ein..."
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then echo -e "\e[m"
$NOTIFY "Das Update wird nun installiert..." 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')"
echo -e "\e[m" fi
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')" $NOTIFY "Calibre wurde auf die neuste Version aktuallisiert.";;
else esac
$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" 2)
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')" $NOTIFY "Versionsvergleich fehlgeschlagen!!! Die Calibre Homepage $CHECK_CALIBRE_DOWNLOAD_PAGE ist nicht verfügbar!";;
fi 3)
$NOTIFY "Calibre wurde auf die neuste Version aktuallisiert." $NOTIFY "Update fehlgeschlagen!!! Die Download Seite $CHECK_DOWNLOAD_URL ist nicht verfügbar!";;
;; 4)
esac $NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!";;
;; esac
echo -e "\e[m"
2) return 0
$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"
} }
#### Main Funktion ####
while test "$#" -gt 0 while test "$#" -gt 0
do do
arg="$1" arg="$1"
shift shift
case $arg in
-*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $arg in case "$arg" in
-*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; --help | -h )
*) optarg= ;;
esac
case "$arg" in
--help | -h )
func_help; exit 0 ;; func_help; exit 0 ;;
--version | -V | -v ) --version | -V | -v )
func_version; exit 0 ;; func_version; exit 0 ;;
--check | -C | -c ) --check | -C | -c )
func_check_prog; exit 0 ;; func_check_prog; exit 0 ;;
--uninstall | -U | -u ) --uninstall | -U | -u )
func_uninstall; exit 0;; func_uninstall; exit 0;;
--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,14 +41,7 @@ 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"
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()
@ -47,38 +51,38 @@ func_progressbar()
for ((i=0; i<61; i++)); do for ((i=0; i<61; i++)); do
echo -e -n "\033[32m=" echo -e -n "\033[32m="
case $i in case $i in
15) 15)
echo -e -n "25%" ;; echo -e -n "25%" ;;
30) 30)
echo -e -n "50%" ;; echo -e -n "50%" ;;
45) 45)
echo -e -n "75%" ;; echo -e -n "75%" ;;
60) 60)
echo -e -n " 100%" ;; echo -e -n " 100%" ;;
esac esac
sleep 0.03 sleep 0.03
done done
echo -e "\e[m" echo -e "\e[m"
return 0 return 0
} }
func_uninstall() func_uninstall()
{ {
func_term_output func_term_output
while ((!gueltig)); do # beginn der Ja/Nein Abfrage while ((!gueltig)); do # beginn der Ja/Nein Abfrage
echo -e "\033[1;34m" echo -e "\033[1;34m"
read -sn1 -t 30 -p "Möchtest Du den Calibre-Autoupdater wirklich DeInstallieren? [j/n] " answer read -sn1 -t 30 -p "Möchtest Du den Calibre-Autoupdater wirklich DeInstallieren? [j/n] " answer
echo -e "\e[m" echo -e "\e[m"
case "$answer" in case "$answer" in
[JjYy]) result=1; gueltig=1 ;; [JjYy]) result=1; gueltig=1 ;;
[Nn]) result=0; gueltig=1 ;; [Nn]) result=0; gueltig=1 ;;
"") result=0; gueltig=1 ;; "") result=0; gueltig=1 ;;
*) 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,29 +96,30 @@ 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!"
read -sn1 -t 30 -p "Deine Bücher und die Calibre Bibliothek bleiben erhalten. [j/n] " answer read -sn1 -t 30 -p "Deine Bücher und die Calibre Bibliothek bleiben erhalten. [j/n] " answer
echo -e "\e[m" echo -e "\e[m"
case "$answer" in case "$answer" in
[JjYy]) result=1; gueltig=1 ;; [JjYy]) result=1; gueltig=1 ;;
[Nn]) result=0; gueltig=1 ;; [Nn]) result=0; gueltig=1 ;;
"") result=0; gueltig=1 ;; "") result=0; gueltig=1 ;;
*) 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
@ -122,40 +127,29 @@ func_uninstall_calibre()
else else
sudo calibre-uninstall sudo calibre-uninstall
fi fi
echo -e "\n\033[1;32mCalibre würde DeInstalliert! Schade es ist ein tolles Programm zur eBookverwaltung :-)\n\e[m" echo -e "\n\033[1;32mCalibre würde DeInstalliert! Schade es ist ein tolles Programm zur eBookverwaltung :-)\n\e[m"
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 if [ -z $CALIBRE_INSTALL_LOCATION ]; then
fi CALIBRE_INSTALL_LOCATION=/opt
if [ -z $CALIBRE_INSTALL_LOCATION ]; then fi
CALIBRE_INSTALL_LOCATION=/opt while [ ! -d $CALIBRE_INSTALL_LOCATION ]; do
fi echo -e "\n\033[1;31mDas Verzeichnis $CALIBRE_INSTALL_LOCATION existiert nicht. Bitte gib ein existierendes Verzeichnis ein!\e[m"
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION
echo -e "\033[1;32mCalibre wird nun installiert...\n\e[m" done
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 "$CALIBRE_INSTALL_LOCATION" ]; then
else echo -e "\033[1;32mCalibre wird nun installiert...\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" 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')"
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')" else
fi 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 "\n\n\033[1;36mHerzlichen Glückwunsch. Calibre wurde installiert und kann nun mit "calibre" verwendet werden.\n\033[0m" 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')"
sleep 5 fi
echo -e "\n\n\033[1;36mHerzlichen Glückwunsch. Calibre wurde unter $CALIBRE_INSTALL_LOCATION installiert"
echo -e "und kann nun mit \"calibre\" verwendet werden.\n\033[0m"
return 0
} }

View File

@ -2,54 +2,67 @@
# 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" {
stat_1=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_CALIBRE_DOWNLOAD_PAGE) echo -e "\033[1;34m Hole Status Code von $CHECK_CALIBRE_DOWNLOAD_PAGE. Bitte warten.\e[m"
func_progressbar stat_1=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_CALIBRE_DOWNLOAD_PAGE)
echo -e "\033[32m Status Codes von $CHECK_CALIBRE_DOWNLOAD_PAGE erhalten\e[m" func_progressbar
echo -e "\n\033[1;34m Hole Status Code von $CHECK_DOWNLOAD_URL. Bitte warten.\e[m" echo -e "\033[32m Status Codes von $CHECK_CALIBRE_DOWNLOAD_PAGE erhalten\e[m"
stat_2=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_DOWNLOAD_URL) echo -e "\n\033[1;34m Hole Status Code von $CHECK_DOWNLOAD_URL. Bitte warten.\e[m"
func_progressbar stat_2=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_DOWNLOAD_URL)
echo -e "\033[32m Status Codes von $CHECK_DOWNLOAD_URL erhalten\e[m" func_progressbar
return 0 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 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
return 1 return 1
elif [[ $stat_1 -eq !200 ]]; then elif [[ $stat_1 -eq !200 ]]; then
return 2 return 2
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,60 +72,73 @@ func_check_run_calibre () {
return 0 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/'`
if [[ $CURRENT_VERSION == $LATEST_VERSION ]]
then
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/'`
if [[ $CURRENT_VERSION == $LATEST_VERSION ]]; then
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]} ]] # fill empty fields in ver2 with zeros
then ver2[i]=0
# fill empty fields in ver2 with zeros fi
ver2[i]=0 if ((10#${ver1[i]} > 10#${ver2[i]})); then
fi return 1
if ((10#${ver1[i]} > 10#${ver2[i]})) fi
then if ((10#${ver1[i]} < 10#${ver2[i]})); then
return 1 return 2
fi fi
if ((10#${ver1[i]} < 10#${ver2[i]}))
then
return 2
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" break
exit 1 fi
if [ ! -f $NOTIFY ]; then
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 "\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";
} }