calibre-autoupdate/calibre-autoupdate.h
Leon Gaultier 480aa9c811 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

Version 0.20
2014-04-15 11:44:30 +02:00

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
}