sauberer Code an einigen stellen, die Dialoge verbessert, Ergebnisse von Funktionsaufrufen in Variablen geschrieben
This commit is contained in:
parent
278641d8f6
commit
e87cdccaaa
137
CAU_Installer
137
CAU_Installer
@ -1,19 +1,43 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# Calibre Auto Updater Installscript
|
||||||
|
# Copyright (C) 2013-2014 Leon Gaultier
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
|
||||||
|
|
||||||
# Programmversion
|
# Programmversion
|
||||||
PROGNAME=`basename $0`
|
PROGNAME=`basename $0`
|
||||||
VERSION="0.13"
|
VERSION="0.13.98"
|
||||||
QUIET=0
|
|
||||||
|
|
||||||
func_term_output () {
|
##### Variablen deklaration #####
|
||||||
|
# Downloadseite der Linuxinstallation
|
||||||
|
DOWNLOAD_URL=https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py
|
||||||
|
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func_term_output () { # einheitliche Terminalausgabe
|
||||||
## Beginne mit der Ausgbe ##
|
## Beginne mit der Ausgbe ##
|
||||||
tty -s && clear
|
tty -s && clear
|
||||||
echo -e "\033[44m \033[0m\033[1m $PROGNAME the Calibre-Autoupdate-Installer Version $VERSION\033[0m\n\033[44m \033[0m 2013-2014 by Leon Gaultier\n";
|
echo -e "\033[44m \033[0m\033[1m $PROGNAME the Calibre-Autoupdate-Installer Version $VERSION\033[0m\n\033[44m \033[0m 2013-2014 by Leon Gaultier\n\e[m";
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func_usage () # Gibt Auskunft über Verwendung des Scriptes
|
func_usage () # Gibt Auskunft über Verwendung des Scriptes
|
||||||
{
|
{
|
||||||
|
func_term_output
|
||||||
echo "Verwendung: $PROGNAME [OPTION...]"
|
echo "Verwendung: $PROGNAME [OPTION...]"
|
||||||
echo -e "Verwende $PROGNAME --help oder $PROGNAME -h für mehr Informationen.\n"
|
echo -e "Verwende $PROGNAME --help oder $PROGNAME -h für mehr Informationen.\n"
|
||||||
}
|
}
|
||||||
@ -25,17 +49,17 @@ func_help () # Listet alle Optionsschalter auf
|
|||||||
echo "$PROGNAME -- Der Calibre-Autoupdate-Installer (CAUI)"
|
echo "$PROGNAME -- Der Calibre-Autoupdate-Installer (CAUI)"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -q, --quiet ohne Konsolenausgabe"
|
|
||||||
echo " -h, --help zeigt die Hilfe an"
|
echo " -h, --help zeigt die Hilfe an"
|
||||||
echo " -V, --version gibt die Programmversion aus"
|
echo " -V, --version gibt die Programmversion aus"
|
||||||
echo " -i, --install installiert den Calibre-Autoupdater (CAU)"
|
echo " -i, --install installiert den Calibre-Autoupdater (CAU)"
|
||||||
#echo " -u, --uninstall deinstalliert den Calibre-Autoupdater (CAU), soll kommen "
|
echo " --install_calibre installiert Calibre in der aktuellsten Version"
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "Sende Fehler an <leongaultier@gmail.com>.\n";
|
echo -e "Sende Fehler an <leongaultier@gmail.com>.\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
func_version () # Versionsauskunft des Installers
|
func_version () # Versionsauskunft des Installers
|
||||||
{
|
{
|
||||||
|
func_term_output
|
||||||
echo "$PROGNAME: Der Calibre-Autoupdate-Installer (CAUI) v$VERSION"
|
echo "$PROGNAME: Der Calibre-Autoupdate-Installer (CAUI) v$VERSION"
|
||||||
echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden,"
|
echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden,"
|
||||||
echo "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE"
|
echo "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE"
|
||||||
@ -54,8 +78,7 @@ read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INS
|
|||||||
if [ -z $CALIBRE_INSTALL_LOCATION ]; then
|
if [ -z $CALIBRE_INSTALL_LOCATION ]; then
|
||||||
CALIBRE_INSTALL_LOCATION=/opt
|
CALIBRE_INSTALL_LOCATION=/opt
|
||||||
fi
|
fi
|
||||||
|
# Verzeichnishierarchie im Installationsort
|
||||||
# Installationsfade in der Verzeichnishierarchie
|
|
||||||
INC=$UPDATER_INSTALL_LOCATION/include/
|
INC=$UPDATER_INSTALL_LOCATION/include/
|
||||||
ETC=$UPDATER_INSTALL_LOCATION/etc/
|
ETC=$UPDATER_INSTALL_LOCATION/etc/
|
||||||
BIN=$UPDATER_INSTALL_LOCATION/bin/
|
BIN=$UPDATER_INSTALL_LOCATION/bin/
|
||||||
@ -64,9 +87,28 @@ BIN=$UPDATER_INSTALL_LOCATION/bin/
|
|||||||
func_check_dir() # Install oder Update Calibre Updater, Check ob Calibre überhaupt installiert ist
|
func_check_dir() # Install oder Update Calibre Updater, Check ob Calibre überhaupt installiert ist
|
||||||
{
|
{
|
||||||
if test ! -d $CALIBRE_INSTALL_LOCATION/calibre ; then
|
if test ! -d $CALIBRE_INSTALL_LOCATION/calibre ; then
|
||||||
echo -e "\n\033[31mKeine Calibre Installation unter $CALIBRE_INSTALL_LOCATION gefunden. Installation des Updaters nicht möglich.\e[m\n"; >&2
|
echo -e "\n\033[31mKeine Calibre Installation unter $CALIBRE_INSTALL_LOCATION gefunden.\033[1;34m"
|
||||||
|
while ((!gueltig)); do # beginn der Ja/Nein Abfrage
|
||||||
|
echo -e "\033[1;34m"
|
||||||
|
read -sn1 -t 30 -p "Möchtest Du Calibre jetzt installieren? [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
|
||||||
|
echo
|
||||||
|
if (( ! result )); then
|
||||||
|
echo -e "\n\033[1;31mDie installation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
echo -e "\033[1;34mNach der Calibre Installation wird die Installation des Calibre Autoupdaters durchgeführt\e[m"
|
||||||
|
sleep 3
|
||||||
|
func_install_calibre
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
if test -f $BIN/calibre-autoupdate ; then # Updater bereits installiert?
|
if test -f $BIN/calibre-autoupdate ; then # Updater bereits installiert?
|
||||||
while ((!gueltig)); do # beginn der Ja/Nein Abfrage
|
while ((!gueltig)); do # beginn der Ja/Nein Abfrage
|
||||||
@ -82,7 +124,7 @@ func_check_dir() # Install oder Update Calibre Updater, Check ob Calibre überh
|
|||||||
done
|
done
|
||||||
echo
|
echo
|
||||||
if (( ! result )); then
|
if (( ! result )); then
|
||||||
echo -e "\n\033[1;31mDie installation des Calibre-Autoupdaters wurde durch Dich beendet.\e[m\n"
|
echo -e "\n\033[1;31mDie installation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -109,21 +151,14 @@ func_progressbar()
|
|||||||
echo -e "\e[m"
|
echo -e "\e[m"
|
||||||
}
|
}
|
||||||
|
|
||||||
func_install() # Installiert den Calibre Updater
|
func_install_noroot()
|
||||||
{
|
{
|
||||||
func_term_output
|
# Die sed Befehle ersetzen in den Programmdateien Platzhalter für den Installationsort.
|
||||||
func_change_install_dir
|
# Grund hierfür sind die includes der Header unf Configfiles die den kompletten Fad benörigen
|
||||||
func_check_dir
|
|
||||||
|
|
||||||
# Ersetzen der Platzhaltervatiablen für die Installationsverzeichnisvariablen
|
|
||||||
|
|
||||||
if [ -w "$BIN" ]; then
|
|
||||||
echo -e "\n\033[1;34mDer Calibre-Autoupdater wird nun unter $UPDATER_INSTALL_LOCATION installiert...\e[m";
|
echo -e "\n\033[1;34mDer Calibre-Autoupdater wird nun unter $UPDATER_INSTALL_LOCATION installiert...\e[m";
|
||||||
echo -e "\n\033[1;32mProgrammdatei wird nach $BIN kopiert\e[m"
|
echo -e "\033[1;32mProgrammdatei wird nach $BIN kopiert\e[m"
|
||||||
cp calibre-autoupdate $BIN
|
cp calibre-autoupdate $BIN
|
||||||
sed -i "s/_-INC-_/${INC//\//\/}/g" $BIN"calibre-autoupdate"
|
|
||||||
sed -i "s/_-ETC-_/${ETC//\//\/}/g" $BIN"calibre-autoupdate"
|
sed -i "s/_-ETC-_/${ETC//\//\/}/g" $BIN"calibre-autoupdate"
|
||||||
sed -i "s/_-BIN-_/${BIN//\//\/}/g" $BIN"calibre-autoupdate"
|
|
||||||
sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate"
|
sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate"
|
||||||
chmod 755 $BIN/calibre-autoupdate
|
chmod 755 $BIN/calibre-autoupdate
|
||||||
func_progressbar
|
func_progressbar
|
||||||
@ -133,17 +168,21 @@ func_check_dir
|
|||||||
func_progressbar
|
func_progressbar
|
||||||
echo -e "\n\033[1;32mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"
|
echo -e "\n\033[1;32mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"
|
||||||
cp calibre-autoupdate.conf $ETC
|
cp calibre-autoupdate.conf $ETC
|
||||||
|
sed -i "s/_-INC-_/${INC//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
||||||
|
sed -i "s/_-BIN-_/${BIN//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
||||||
sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
||||||
chmod 644 $ETC/calibre-autoupdate.conf
|
chmod 644 $ETC/calibre-autoupdate.conf
|
||||||
func_progressbar
|
func_progressbar
|
||||||
|
}
|
||||||
|
|
||||||
else
|
func_install_root()
|
||||||
|
{
|
||||||
|
# Die sed Befehle ersetzen in den Programmdateien Platzhalter für den Installationsort.
|
||||||
|
# Grund hierfür sind die includes der Header unf Configfiles die den kompletten Fad benörigen
|
||||||
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;36mProgrammdatei wird nach $BIN kopiert\e[m\e[m"
|
sudo echo -e "\033[1;36mProgrammdatei wird nach $BIN kopiert\e[m\e[m"
|
||||||
sudo cp calibre-autoupdate $BIN
|
sudo cp calibre-autoupdate $BIN
|
||||||
sudo sed -i "s/_-INC-_/${INC//\//\/}/g" $BIN"calibre-autoupdate"
|
|
||||||
sudo sed -i "s/_-ETC-_/${ETC//\//\/}/g" $BIN"calibre-autoupdate"
|
sudo sed -i "s/_-ETC-_/${ETC//\//\/}/g" $BIN"calibre-autoupdate"
|
||||||
sudo sed -i "s/_-BIN-_/${BIN//\//\/}/g" $BIN"calibre-autoupdate"
|
|
||||||
sudo sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate"
|
sudo sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate"
|
||||||
sudo chmod 755 $BIN"calibre-autoupdate"
|
sudo chmod 755 $BIN"calibre-autoupdate"
|
||||||
func_progressbar
|
func_progressbar
|
||||||
@ -153,18 +192,47 @@ func_check_dir
|
|||||||
func_progressbar
|
func_progressbar
|
||||||
echo -e "\n\033[1;36mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"
|
echo -e "\n\033[1;36mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"
|
||||||
sudo cp calibre-autoupdate.conf $ETC
|
sudo cp calibre-autoupdate.conf $ETC
|
||||||
|
sudo sed -i "s/_-INC-_/${INC//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
||||||
|
sudo sed -i "s/_-BIN-_/${BIN//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
||||||
sudo sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
sudo sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
||||||
sudo chmod 644 $ETC"calibre-autoupdate.conf";
|
sudo chmod 644 $ETC"calibre-autoupdate.conf";
|
||||||
func_progressbar
|
func_progressbar
|
||||||
|
}
|
||||||
|
|
||||||
|
func_install_process() # Installiert den Calibre Updater
|
||||||
|
{
|
||||||
|
func_term_output
|
||||||
|
func_change_install_dir
|
||||||
|
func_check_dir
|
||||||
|
|
||||||
|
if [ -w "$BIN" ]; then
|
||||||
|
func_install_noroot
|
||||||
|
else
|
||||||
|
func_install_root
|
||||||
fi
|
fi
|
||||||
echo -e "\n\n\n\033[1;36mDer Calibre-Autoupdater wurde erfolgreich installiert und"
|
echo -e "\n\n\033[1;36mDer 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"
|
||||||
}
|
}
|
||||||
|
|
||||||
func_uninstall()
|
func_install_calibre()
|
||||||
{
|
{
|
||||||
echo
|
if [ ! $CALIBRE_INSTALL_LOCATION ]; then
|
||||||
# ist geplant
|
func_term_output
|
||||||
|
read -p "Wohin soll Calibre installiert werden? [default /opt] " CALIBRE_INSTALL_LOCATION
|
||||||
|
fi
|
||||||
|
if [ -z $CALIBRE_INSTALL_LOCATION ]; then
|
||||||
|
CALIBRE_INSTALL_LOCATION=/opt
|
||||||
|
fi
|
||||||
|
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
|
||||||
|
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')"
|
||||||
|
else
|
||||||
|
echo -e "\033[1;34mDu hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION. Calibre wird mit SUDO installiert. Bitte gib hierzu Dein Userpasswort ein...\n\033[1;32m"
|
||||||
|
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
|
||||||
|
echo -e "\n\n\033[1;36mHerzlichen Glückwunsch. Calibre wurde installiert und kann nun mit "calibre" verwendet werden.\n\033[0m"
|
||||||
|
sleep 5
|
||||||
|
func_install_process
|
||||||
}
|
}
|
||||||
|
|
||||||
while test "$#" -gt 0
|
while test "$#" -gt 0
|
||||||
@ -178,19 +246,18 @@ do
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
--quiet | -q )
|
|
||||||
QUIET=1 ;;
|
|
||||||
--help | -h )
|
--help | -h )
|
||||||
func_help; exit 0 ;;
|
func_help; exit 0 ;;
|
||||||
--version | -V | -v )
|
--version | -V | -v )
|
||||||
func_version; exit 0 ;;
|
func_version; exit 0 ;;
|
||||||
--install | -i )
|
--install | -i | -I )
|
||||||
func_install; exit 0 ;;
|
func_install_process; exit 0 ;;
|
||||||
--uninstall | -u )
|
--install_calibre )
|
||||||
func_uninstall; exit 0;;
|
func_install_calibre; exit 0
|
||||||
esac
|
esac
|
||||||
|
|
||||||
done
|
done
|
||||||
func_term_output
|
func_term_output
|
||||||
func_usage
|
func_usage
|
||||||
|
echo -e "\e[m"
|
||||||
exit 0
|
exit 0
|
@ -61,7 +61,18 @@
|
|||||||
# Es wurden diverse Ausgabentexte sprachlich verbessert und Fehler beseitigt.
|
# Es wurden diverse Ausgabentexte sprachlich verbessert und Fehler beseitigt.
|
||||||
# !!! Das ist die erste Version welche eine reibungslose Installation und einen reibungslosen
|
# !!! Das ist die erste Version welche eine reibungslose Installation und einen reibungslosen
|
||||||
# betrieb unter allen Linuxvarianten ermöglicht !!!
|
# betrieb unter allen Linuxvarianten ermöglicht !!!
|
||||||
# TODO auslesen der Download URL von der Download Seite
|
#
|
||||||
|
# v0.13 Es wurden diverse Fehler bei eigentlichen Updateprozess bereinigt. Desweiteren wurden größere
|
||||||
|
# in kleine geteilt.
|
||||||
|
#
|
||||||
|
# v0.14 Uninstallfunktion für Calibre hinzugefügt. Hiermit kann Calibre von der Festplatte deinstalliert werden.
|
||||||
|
# Bei einer nicht vorhandenen Calibreinstallation wird vom Installsript des Updaters gefragt, ob Calibre
|
||||||
|
# installiert werden soll.
|
||||||
|
# Die Funktion Installation des Updaters wurde aufgeteilt in root_install und noroot_install
|
||||||
|
# Uninstall Funktion für den calibre-autoupdater mit gleichzeitiger nachfrage und eventueller
|
||||||
|
# deinstallation vom Calibre Programm
|
||||||
|
#
|
||||||
|
# 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
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@ -69,14 +80,12 @@
|
|||||||
######################################
|
######################################
|
||||||
|
|
||||||
# Installationsfade in der Verzeichnishierarchie
|
# Installationsfade in der Verzeichnishierarchie
|
||||||
INC=_-INC-_
|
|
||||||
ETC=_-ETC-_
|
ETC=_-ETC-_
|
||||||
BIN=_-BIN-_
|
|
||||||
|
|
||||||
# Programmversion
|
# Programmversion
|
||||||
PROGNAME=`basename $0`
|
PROGNAME=`basename $0`
|
||||||
VERSION="_-VERSION-_"
|
VERSION="_-VERSION-_"
|
||||||
QUIET=0
|
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
######### CONFIGURATION #########
|
######### CONFIGURATION #########
|
||||||
@ -84,7 +93,8 @@ QUIET=0
|
|||||||
# bis Veränderungen auf der Internetseite durchgeführt wurden
|
# bis Veränderungen auf der Internetseite durchgeführt wurden
|
||||||
#################################
|
#################################
|
||||||
|
|
||||||
# Einlesen des Configfiles mit den Constanten für die Calibre Downloadseite und Hauptseite
|
# Einlesen des Configfiles mit den Variablen für die Calibre Downloadseite, Hauptseite
|
||||||
|
# und den Installationsfaden in der Verzeichnishierarchie
|
||||||
source $ETC/calibre-autoupdate.conf
|
source $ETC/calibre-autoupdate.conf
|
||||||
|
|
||||||
|
|
||||||
@ -96,13 +106,6 @@ source $INC/calibre-autoupdate_checks.h
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
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";
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
#######################################################
|
#######################################################
|
||||||
@ -114,17 +117,17 @@ 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 # Funktion für Konsolenausgabe
|
func_term_output # ruft die Funktion für Konsolenausgabe auf
|
||||||
|
func_check_stat # ruft die Funktion "check Status Netzwerk und Downloadadressen" auf
|
||||||
|
|
||||||
func_http_status_code # Funktion hole einen http-status code
|
case "$?" in
|
||||||
|
|
||||||
func_check_stat # Funktion check Status Netzwerk und Downloadadressen
|
|
||||||
|
|
||||||
case $? in
|
|
||||||
1)
|
1)
|
||||||
func_check_version
|
func_check_version
|
||||||
|
CHECK_STATE_RESULT="$1"
|
||||||
|
echo $CHECK_STATE_RESULT
|
||||||
|
sleep 1000
|
||||||
func_vercomp $CURRENT_VERSION $LATEST_VERSION # Funktion Versionvergleich
|
func_vercomp $CURRENT_VERSION $LATEST_VERSION # Funktion Versionvergleich
|
||||||
case $? in
|
case $CHECK_STATE_RESULT in
|
||||||
0)
|
0)
|
||||||
$NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand ($CURRENT_VERSION).";;
|
$NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand ($CURRENT_VERSION).";;
|
||||||
1)
|
1)
|
||||||
@ -136,11 +139,11 @@ case $? in
|
|||||||
|
|
||||||
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 "\033[1;34m"
|
echo -e "\033[34m"
|
||||||
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')"
|
||||||
else
|
else
|
||||||
$NOTIFY "Du hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION. Das Update wird mit SUDO installiert. Bitte gib hierzu Dein Userpasswort im Terminalfenster ein..."
|
$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 "\033[1;34m"
|
echo -e "\033[34m"
|
||||||
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."
|
||||||
@ -158,6 +161,7 @@ case $? in
|
|||||||
$NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!"
|
$NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
echo -e "\e[m"
|
||||||
}
|
}
|
||||||
|
|
||||||
while test "$#" -gt 0
|
while test "$#" -gt 0
|
||||||
@ -171,18 +175,20 @@ do
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
case "$arg" in
|
case "$arg" in
|
||||||
--quiet | -q )
|
|
||||||
QUIET=1 ;;
|
|
||||||
--help | -h )
|
--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 )
|
||||||
|
func_uninstall; exit 0;;
|
||||||
|
--uninstall_calibre )
|
||||||
|
func_uninstall_calibre; exit 0 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
done
|
done
|
||||||
func_check_prog
|
func_check_prog
|
||||||
func_update
|
func_update
|
||||||
|
echo -e "\e[m"
|
||||||
exit 0
|
exit 0
|
@ -19,3 +19,7 @@ CURL=/usr/bin/curl
|
|||||||
NOTIFY=/usr/bin/notify-send
|
NOTIFY=/usr/bin/notify-send
|
||||||
AWK=/usr/bin/awk
|
AWK=/usr/bin/awk
|
||||||
|
|
||||||
|
# Installationsfade in der Verzeichnishierarchie
|
||||||
|
INC=_-INC-_
|
||||||
|
BIN=_-BIN-_
|
||||||
|
|
||||||
|
@ -19,12 +19,15 @@ func_help ()
|
|||||||
echo " -h, --help zeigt die Hilfe an"
|
echo " -h, --help zeigt die Hilfe an"
|
||||||
echo " -V, --version gibt die Programmversion aus"
|
echo " -V, --version gibt die Programmversion aus"
|
||||||
echo " -c, --check kontrolliert ob benötigte Programme vorhanden sind"
|
echo " -c, --check kontrolliert ob benötigte Programme vorhanden sind"
|
||||||
|
echo " -u, --uninstall deinstalliert den Calibre-Autoupdater"
|
||||||
|
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";
|
||||||
}
|
}
|
||||||
|
|
||||||
func_version ()
|
func_version ()
|
||||||
{
|
{
|
||||||
|
func_term_output
|
||||||
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 "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE"
|
echo "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE"
|
||||||
@ -62,6 +65,13 @@ func_vercomp () { # Funktion zum Versionsvergleich
|
|||||||
return 0
|
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()
|
||||||
{
|
{
|
||||||
echo -e -n $'\033[34m------------------------------------------------------------------------- 100%\r'
|
echo -e -n $'\033[34m------------------------------------------------------------------------- 100%\r'
|
||||||
@ -81,4 +91,69 @@ func_progressbar()
|
|||||||
sleep 0.03
|
sleep 0.03
|
||||||
done
|
done
|
||||||
echo -e "\e[m"
|
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
|
||||||
|
echo
|
||||||
|
if (( ! result )); then
|
||||||
|
echo -e "\033[1;31mDie DeInstallation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
|
||||||
|
exit 1
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
func_uninstall_calibre()
|
||||||
|
{
|
||||||
|
func_term_output
|
||||||
|
if test ! -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 1
|
||||||
|
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
|
||||||
|
echo
|
||||||
|
if (( ! result )); then
|
||||||
|
echo -e "\n\033[1;31mDie DeInstallation von Calibre wurde durch Dich abgebrochen.\e[m\n"
|
||||||
|
exit 1
|
||||||
|
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\n\033[1;32mCalibre würde DeInstalliert! Schade es ist ein tolles Programm zur eBookverwaltung :-)\e[m"
|
||||||
|
return 0
|
||||||
}
|
}
|
@ -3,21 +3,21 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
func_http_status_code () {
|
func_http_status_code () {
|
||||||
echo -e "\033[1;34m Hole Status Code von $CHECK_CALIBRE_DOWNLOAD_PAGE. Bitte warten.";
|
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
|
||||||
echo -e "\033[32m Status Codes von $CHECK_CALIBRE_DOWNLOAD_PAGE erhalten";
|
echo -e "\033[32m Status Codes von $CHECK_CALIBRE_DOWNLOAD_PAGE erhalten\e[m"
|
||||||
echo -e "\n\033[1;34m Hole Status Code von $CHECK_DOWNLOAD_URL. Bitte warten.";
|
echo -e "\n\033[1;34m Hole Status Code von $CHECK_DOWNLOAD_URL. Bitte warten.\e[m"
|
||||||
stat_2=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_DOWNLOAD_URL)
|
stat_2=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_DOWNLOAD_URL)
|
||||||
func_progressbar
|
func_progressbar
|
||||||
echo -e "\033[32m Status Codes von $CHECK_DOWNLOAD_URL erhalten";
|
echo -e "\033[32m Status Codes von $CHECK_DOWNLOAD_URL erhalten\e[m"
|
||||||
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
|
# Test for network conection
|
||||||
echo -e "\n\033[1;34m Ich schau dann mal ob Dein Computer überhaupt ein Netzwerk hat :-)";
|
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);
|
for INTERFACE in $(ls /sys/class/net/ | grep -v lo)
|
||||||
do
|
do
|
||||||
if [[ $(cat /sys/class/net/$INTERFACE/carrier) = 1 ]]; then
|
if [[ $(cat /sys/class/net/$INTERFACE/carrier) = 1 ]]; then
|
||||||
ONLINE=1
|
ONLINE=1
|
||||||
@ -25,8 +25,8 @@ do
|
|||||||
done
|
done
|
||||||
func_progressbar
|
func_progressbar
|
||||||
if [ $ONLINE ]; then
|
if [ $ONLINE ]; then
|
||||||
echo -e "\n\033[32m Oh Wunder! Habe ein Netzwerk gefunden. Verbinde über Interface $INTERFACE,
|
echo -e "\033[32m Es wurde ein Netzwerkinterface gefunden. Verbinde über Interface $INTERFACE\n\e[m"
|
||||||
was nicht heißt das es geht :-P\n";
|
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
|
||||||
@ -35,7 +35,7 @@ if [ $ONLINE ]; then
|
|||||||
return 3
|
return 3
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "\n\033[31m Fehler!!! Bitte schau Dir die Desktop Benachrichtigung an!";
|
echo -e "\n\033[31m Fehler!!! Bitte schau Dir die Desktop Benachrichtigung an!\e[m"
|
||||||
return 4
|
return 4
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -43,14 +43,14 @@ fi
|
|||||||
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"
|
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
|
||||||
kill -15 $CALIBRE_PID
|
kill -15 $CALIBRE_PID
|
||||||
@ -71,21 +71,21 @@ func_check_version () {
|
|||||||
func_check_prog () {
|
func_check_prog () {
|
||||||
func_term_output
|
func_term_output
|
||||||
if test ! -f $CURL ; then
|
if test ! -f $CURL ; then
|
||||||
echo -e "\033[31mDu hast Curl nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2
|
$NOTIFY "Du hast Curl nich installiert, es wird aber für die Updatefunktion benötigt"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test ! -f $AWK ; then
|
if test ! -f $AWK ; then
|
||||||
echo -e "\033[31mDu hast AWK nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2
|
$NOTIFY "Du hast AWK nich installiert, es wird aber für die Updatefunktion benötigt"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
if test ! -f $NOTIFY ; then
|
if test ! -f $NOTIFY ; then
|
||||||
echo -e "\e[0;33mDu hast Notify-Send nich installiert, das Programm ist optional und wird"; >&2
|
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"; >&2
|
echo -e "für die Upatefunktion nicht unbedingt benötigt\n\e[m"
|
||||||
sleep 10
|
sleep 10
|
||||||
fi
|
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 geschaut\n";
|
echo -e "es wird nach einer aktuellen Calibre Version gesucht\n\e[m";
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user