2014-04-01 18:58:03 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# Programmversion
|
|
|
|
PROGNAME=`basename $0`
|
2014-04-05 20:08:39 +00:00
|
|
|
VERSION="0.13"
|
2014-04-01 18:58:03 +00:00
|
|
|
QUIET=0
|
|
|
|
|
|
|
|
func_term_output () {
|
|
|
|
## Beginne mit der Ausgbe ##
|
|
|
|
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";
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
func_usage () # Gibt Auskunft über Verwendung des Scriptes
|
|
|
|
{
|
2014-04-03 09:30:25 +00:00
|
|
|
echo "Verwendung: $PROGNAME [OPTION...]"
|
|
|
|
echo -e "Verwende $PROGNAME --help oder $PROGNAME -h für mehr Informationen.\n"
|
2014-04-01 18:58:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func_help () # Listet alle Optionsschalter auf
|
|
|
|
{
|
|
|
|
func_term_output
|
2014-04-03 09:30:25 +00:00
|
|
|
echo "Verwende: $PROGNAME [OPTION...]"
|
|
|
|
echo "$PROGNAME -- Der Calibre-Autoupdate-Installer (CAUI)"
|
2014-04-01 18:58:03 +00:00
|
|
|
echo ""
|
|
|
|
echo "Options:"
|
|
|
|
echo " -q, --quiet ohne Konsolenausgabe"
|
|
|
|
echo " -h, --help zeigt die Hilfe an"
|
|
|
|
echo " -V, --version gibt die Programmversion aus"
|
|
|
|
echo " -i, --install installiert den Calibre-Autoupdater (CAU)"
|
2014-04-03 09:30:25 +00:00
|
|
|
#echo " -u, --uninstall deinstalliert den Calibre-Autoupdater (CAU), soll kommen "
|
2014-04-01 18:58:03 +00:00
|
|
|
echo ""
|
2014-04-03 09:30:25 +00:00
|
|
|
echo -e "Sende Fehler an <leongaultier@gmail.com>.\n";
|
2014-04-01 18:58:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func_version () # Versionsauskunft des Installers
|
|
|
|
{
|
2014-04-03 09:30:25 +00:00
|
|
|
echo "$PROGNAME: Der Calibre-Autoupdate-Installer (CAUI) v$VERSION"
|
|
|
|
echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden,"
|
|
|
|
echo "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE"
|
2014-04-01 18:58:03 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func_change_install_dir() # Funktion zur Abfrage des Installationsortes
|
|
|
|
{
|
2014-04-03 09:30:25 +00:00
|
|
|
read -p "Wo soll der Calibre-Autoupdater installiert werden? [default /usr/local] " UPDATER_INSTALL_LOCATION
|
2014-04-01 18:58:03 +00:00
|
|
|
|
|
|
|
if [ -z $UPDATER_INSTALL_LOCATION ]; then
|
|
|
|
UPDATER_INSTALL_LOCATION=/usr/local
|
|
|
|
fi
|
2014-04-04 17:35:30 +00:00
|
|
|
read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION
|
2014-04-01 18:58:03 +00:00
|
|
|
|
|
|
|
if [ -z $CALIBRE_INSTALL_LOCATION ]; then
|
2014-04-04 17:35:30 +00:00
|
|
|
CALIBRE_INSTALL_LOCATION=/opt
|
2014-04-01 18:58:03 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Installationsfade in der Verzeichnishierarchie
|
|
|
|
INC=$UPDATER_INSTALL_LOCATION/include/
|
|
|
|
ETC=$UPDATER_INSTALL_LOCATION/etc/
|
|
|
|
BIN=$UPDATER_INSTALL_LOCATION/bin/
|
|
|
|
}
|
|
|
|
|
|
|
|
func_check_dir() # Install oder Update Calibre Updater, Check ob Calibre überhaupt installiert ist
|
|
|
|
{
|
2014-04-04 17:35:30 +00:00
|
|
|
if test ! -d $CALIBRE_INSTALL_LOCATION/calibre ; then
|
2014-04-05 13:06:35 +00:00
|
|
|
echo -e "\n\033[31mKeine Calibre Installation unter $CALIBRE_INSTALL_LOCATION gefunden. Installation des Updaters nicht möglich.\e[m\n"; >&2
|
2014-04-01 18:58:03 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2014-04-02 04:04:52 +00:00
|
|
|
if test -f $BIN/calibre-autoupdate ; then # Updater bereits installiert?
|
|
|
|
while ((!gueltig)); do # beginn der Ja/Nein Abfrage
|
2014-04-01 18:58:03 +00:00
|
|
|
echo -e "\033[1;34m"
|
|
|
|
read -sn1 -t 30 -p "Der calibre-autoupdater ist bereits installiert. Möchtest Du ein Update durchführen? [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
|
2014-04-03 09:30:25 +00:00
|
|
|
echo -e "\n\033[1;31mDie installation des Calibre-Autoupdaters wurde durch Dich beendet.\e[m\n"
|
2014-04-01 18:58:03 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2014-04-05 13:06:35 +00:00
|
|
|
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
|
2014-04-05 20:05:02 +00:00
|
|
|
sleep 0.07
|
2014-04-05 13:06:35 +00:00
|
|
|
done
|
|
|
|
echo -e "\e[m"
|
|
|
|
}
|
|
|
|
|
2014-04-01 18:58:03 +00:00
|
|
|
func_install() # Installiert den Calibre Updater
|
|
|
|
{
|
|
|
|
func_term_output
|
|
|
|
func_change_install_dir
|
|
|
|
func_check_dir
|
|
|
|
|
2014-04-03 09:30:25 +00:00
|
|
|
# Ersetzen der Platzhaltervatiablen für die Installationsverzeichnisvariablen
|
|
|
|
|
2014-04-01 18:58:03 +00:00
|
|
|
if [ -w "$BIN" ]; then
|
2014-04-03 09:30:25 +00:00
|
|
|
echo -e "\n\033[1;34mDer Calibre-Autoupdater wird nun unter $UPDATER_INSTALL_LOCATION installiert...\e[m";
|
2014-04-05 20:05:02 +00:00
|
|
|
echo -e "\n\033[1;32mProgrammdatei wird nach $BIN kopiert\e[m"
|
2014-04-05 13:52:02 +00:00
|
|
|
cp calibre-autoupdate $BIN
|
2014-04-03 09:30:25 +00:00
|
|
|
sed -i "s/_-INC-_/${INC//\//\/}/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"
|
2014-04-05 13:52:02 +00:00
|
|
|
chmod 755 $BIN/calibre-autoupdate
|
|
|
|
func_progressbar
|
2014-04-05 20:05:02 +00:00
|
|
|
echo -e "\n\033[1;32mDie Header-Dateien werden nach $INC kopiert\e[m"
|
2014-04-05 13:52:02 +00:00
|
|
|
cp calibre-autoupdate.h calibre-autoupdate_checks.h $INC
|
|
|
|
chmod 644 $INC/calibre-autoupdate.h $INC/calibre-autoupdate_checks.h
|
|
|
|
func_progressbar
|
2014-04-05 20:05:02 +00:00
|
|
|
echo -e "\n\033[1;32mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"
|
2014-04-05 13:52:02 +00:00
|
|
|
cp calibre-autoupdate.conf $ETC
|
2014-04-03 09:30:25 +00:00
|
|
|
sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
2014-04-05 13:52:02 +00:00
|
|
|
chmod 644 $ETC/calibre-autoupdate.conf
|
|
|
|
func_progressbar
|
2014-04-01 18:58:03 +00:00
|
|
|
|
|
|
|
else
|
|
|
|
echo -e "\n\033[1;34mDu hast kein Schreibrecht auf $UPDATER_INSTALL_LOCATION, daher wird SUDO versucht zu verwenden...\e[m";
|
2014-04-05 13:06:35 +00:00
|
|
|
sudo echo -e "\n\033[1;36mProgrammdatei wird nach $BIN kopiert\e[m\e[m"
|
2014-04-03 09:30:25 +00:00
|
|
|
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/_-BIN-_/${BIN//\//\/}/g" $BIN"calibre-autoupdate"
|
|
|
|
sudo sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate"
|
2014-04-05 13:06:35 +00:00
|
|
|
sudo chmod 755 $BIN"calibre-autoupdate"
|
|
|
|
func_progressbar
|
|
|
|
echo -e "\n\033[1;36mDie Header-Dateien werden nach $INC kopiert\e[m"
|
2014-04-03 09:30:25 +00:00
|
|
|
sudo cp calibre-autoupdate.h calibre-autoupdate_checks.h $INC
|
2014-04-05 13:06:35 +00:00
|
|
|
sudo chmod 644 $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h"
|
|
|
|
func_progressbar
|
|
|
|
echo -e "\n\033[1;36mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"
|
2014-04-03 09:30:25 +00:00
|
|
|
sudo cp calibre-autoupdate.conf $ETC
|
|
|
|
sudo sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
|
|
|
|
sudo chmod 644 $ETC"calibre-autoupdate.conf";
|
2014-04-05 13:06:35 +00:00
|
|
|
func_progressbar
|
2014-04-01 18:58:03 +00:00
|
|
|
fi
|
2014-04-03 09:30:25 +00:00
|
|
|
echo -e "\n\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"
|
2014-04-01 18:58:03 +00:00
|
|
|
}
|
|
|
|
|
2014-04-02 04:04:52 +00:00
|
|
|
func_uninstall()
|
|
|
|
{
|
|
|
|
echo
|
|
|
|
# ist geplant
|
|
|
|
}
|
|
|
|
|
2014-04-01 18:58:03 +00:00
|
|
|
while test "$#" -gt 0
|
|
|
|
do
|
|
|
|
arg="$1"
|
|
|
|
shift
|
|
|
|
|
|
|
|
case $arg in
|
|
|
|
-*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
|
|
|
|
*) optarg= ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
case "$arg" in
|
|
|
|
--quiet | -q )
|
|
|
|
QUIET=1 ;;
|
|
|
|
--help | -h )
|
|
|
|
func_help; exit 0 ;;
|
|
|
|
--version | -V | -v )
|
|
|
|
func_version; exit 0 ;;
|
|
|
|
--install | -i )
|
|
|
|
func_install; exit 0 ;;
|
2014-04-02 04:04:52 +00:00
|
|
|
--uninstall | -u )
|
|
|
|
func_uninstall; exit 0;;
|
2014-04-01 18:58:03 +00:00
|
|
|
esac
|
|
|
|
|
|
|
|
done
|
|
|
|
func_term_output
|
2014-04-03 09:30:25 +00:00
|
|
|
func_usage
|
|
|
|
exit 0
|