480aa9c811
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 Version 0.20
157 lines
6.2 KiB
C
157 lines
6.2 KiB
C
# Calibre Auto Updater Header File
|
|
# 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_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)"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " -h, --help zeigt die Hilfe an"
|
|
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 " --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_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_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.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
|
|
if (( ! result )); then
|
|
echo -e "\033[1;31mDie DeInstallation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
|
|
exit 0
|
|
fi
|
|
echo -e "\033[1;31mDer Calibre-Autoupdater wird nun deinstalliert.\e[m"
|
|
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
|
|
rm -rf $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h"; >&2
|
|
rm -rf $ETC"calibre-autoupdate.conf"; >&2
|
|
rm -rf $BIN"calibre-autoupdate"; >&2
|
|
else
|
|
sudo rm -rf $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h"; >&2
|
|
sudo rm -rf $ETC"calibre-autoupdate.conf"; >&2
|
|
sudo rm -rf $BIN"calibre-autoupdate"; >&2
|
|
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 [ ! -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 0
|
|
fi
|
|
echo -e "\033[1;34mCalibre wird nun deinstalliert.\e[m"
|
|
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
|
|
calibre-uninstall
|
|
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
|
|
}
|
|
|
|
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
|
|
} |