2014-04-03 09:33:51 +00:00
# Calibre Auto Updater Configfile
2014-03-31 16:32:46 +00:00
# Copyright (C) 2013-2014 Leon Gaultier
#
2014-04-15 04:22:11 +00:00
func_http_status_code ( ) {
2014-11-21 08:35:33 +00:00
echo - e " \033 [1;34m Ermittle Status von $CHECK_CALIBRE_DOWNLOAD_PAGE. Bitte warten. \ e[m "
2014-04-10 14:49:39 +00:00
stat_1 = $ ( curl - o / dev / null - - silent - - head - - write - out ' % { http_code } ' $ CHECK_CALIBRE_DOWNLOAD_PAGE )
func_progressbar
2014-11-21 08:35:33 +00:00
echo - e " \033 [32m Abgeschlossen \ e[m "
echo - e " \n \033 [1;34m Ermittle Status Code von $CHECK_DOWNLOAD_URL. Bitte warten. \ e[m "
2014-04-10 14:49:39 +00:00
stat_2 = $ ( curl - o / dev / null - - silent - - head - - write - out ' % { http_code } ' $ CHECK_DOWNLOAD_URL )
func_progressbar
2014-11-21 08:35:33 +00:00
echo - e " \033 [32m Abgeschlossen \ e[m "
2014-04-10 14:49:39 +00:00
return 0
2014-04-05 13:24:59 +00:00
}
2014-11-21 08:35:33 +00:00
func_check_stat ( ) { # Funktion zum Check Verfügbarkeit der Downloadseiten und der Internetverbindung
2014-04-10 14:49:39 +00:00
# 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
2014-11-21 08:35:33 +00:00
if [ [ $ ( cat / sys / class / net / $ INTERFACE / carrier ) = 1 ] ] & & [ [ - n $ ( ifconfig $ INTERFACE | grep ' inet Adresse : ' | cut - d : - f2 | awk ' { print $ 1 } ' ) ] ] ; then
ONLINE = 1
IFACE = $ INTERFACE
fi
2014-04-10 14:49:39 +00:00
done
func_progressbar
if [ $ ONLINE ] ; then
2014-11-21 14:42:06 +00:00
echo - e " \033 [32m Es wurde ein Netzwerkinterface gefunden. Verbindung über Interface $IFACE \n \ e[m "
2014-11-21 08:35:33 +00:00
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
2014-04-10 14:49:39 +00:00
else
2014-11-21 08:35:33 +00:00
echo - e " \n \033 [31m Fehler!!! Bitte schau Dir die Desktop Benachrichtigung an! \ e[m "
return 4
2014-04-10 14:49:39 +00:00
fi
return 0
2014-03-31 16:32:46 +00:00
}
2014-04-08 12:40:44 +00:00
func_check_run_calibre ( ) {
2014-04-15 04:22:11 +00:00
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... "
2014-04-08 12:40:44 +00:00
done
return 0
}
2014-04-15 13:27:43 +00:00
func_check_version_alternate ( ) { # Wurde von einem User im Mobilreaderforum vorgeschlagen . Ist mir aber ehrlich
# gesagt zu unflexibel. Habe es für mich selber aber mal Dokumentiert
2014-04-15 12:58:36 +00:00
calibre - debug - c " import urllib as u; from calibre.constants import numeric_version; raise SystemExit(int(numeric_version < (tuple(map(int, u.urlopen('http://calibre-ebook.com/downloads/latest_version').read().split('.')))))) "
UP_TO_DATE = $ ?
if [ $ UP_TO_DATE = 0 ] ; then
return 0
else
return 2
fi
echo - e " \n \033 [31m Fehler!!! Es wurde beim Versionscheck ein unbekannter Wert zurückgegeben! \ e[m "
exit 0
}
2014-04-08 12:40:44 +00:00
func_check_version ( ) {
2014-04-10 14:49:39 +00:00
# Ermitteln der letzten aktuell verfügbaren Version
2014-04-15 11:09:34 +00:00
LATEST_VERSION = ` curl - s $ CALIBRE_LAST_VERSION_PAGE `
2014-04-10 14:49:39 +00:00
# Ermitteln der aktuell installierten Version.
CURRENT_VERSION = ` calibre - - version | sed ' s / [ ^ 0 - 9. ] * \ ( [ 0 - 9. ] * \ ) . */ \ 1 / ' `
if [ [ $ CURRENT_VERSION = = $ LATEST_VERSION ] ] ; then
return 0
2014-04-08 10:22:46 +00:00
fi
local IFS = .
2014-04-08 12:40:44 +00:00
local i ver1 = ( $ CURRENT_VERSION ) ver2 = ( $ LATEST_VERSION )
2014-04-15 13:27:43 +00:00
# schreibe Nullen in leere Felder von ver1
2014-04-10 14:49:39 +00:00
for ( ( i = $ { # ver1 [ @ ] } ; i < $ { # ver2 [ @ ] } ; i + + ) ) ; do
ver1 [ i ] = 0
2014-04-08 10:22:46 +00:00
done
2014-04-10 14:49:39 +00:00
for ( ( i = 0 ; i < $ { # ver1 [ @ ] } ; i + + ) ) ; do
if [ [ - z $ { ver2 [ i ] } ] ] ; then
2014-04-15 13:27:43 +00:00
# schreibe Nullen in leere Felder von ver2
2014-04-10 14:49:39 +00:00
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
2014-04-08 10:22:46 +00:00
done
2014-04-08 12:40:44 +00:00
return 0
2014-03-31 16:32:46 +00:00
}
2014-04-15 09:44:30 +00:00
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
2014-04-10 14:49:39 +00:00
if [ ! - f $ CURL ] ; then
$ NOTIFY " Du hast Curl nich installiert, es wird aber für die Updatefunktion benötigt "
2014-04-15 09:44:30 +00:00
exit 0
2014-04-10 14:49:39 +00:00
fi
if [ ! - f $ AWK ] ; then
$ NOTIFY " Du hast AWK nich installiert, es wird aber für die Updatefunktion benötigt "
2014-04-15 09:44:30 +00:00
exit 0
2014-04-10 14:49:39 +00:00
fi
2014-11-20 08:48:38 +00:00
if [ ! - f / usr / bin / kdialog ] ; then
echo - e " \ e[0;33mDu hast kdialog nich installiert, das Programm ist optional und wird \ e[m "
2014-04-10 14:49:39 +00:00
echo - e " für die Upatefunktion nicht unbedingt benötigt \n \ e[m "
sleep 10
2014-04-15 09:44:30 +00:00
fi
2014-03-31 16:32:46 +00:00
echo - e " \033 [32mAlle benötigten Programme sind installiert. Starte $PROGNAME ohne Optionen und "
2014-04-08 04:49:28 +00:00
echo - e " es wird nach einer aktuellen Calibre Version gesucht \n \ e[m " ;
2014-04-15 09:44:30 +00:00
return 0
2014-11-20 08:48:38 +00:00
}