calibre-autoupdate/CAU_Installer

147 lines
4.8 KiB
Bash
Executable File

#!/bin/bash
# Programmversion
PROGNAME=`basename $0`
VERSION="0.3"
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
{
echo "Usage: $PROGNAME [OPTION...]"
echo "Try '$PROGNAME --help' or '$PROGNAME -h' for more information."
}
func_help () # Listet alle Optionsschalter auf
{
func_term_output
echo "Usage: $PROGNAME [OPTION...]"
echo "$PROGNAME -- the Calibre-Autoupdate-Installer (CAUI)"
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)"
echo ""
echo -e "Report bugs to <leongaultier@gmail.com>.\n";
}
func_version () # Versionsauskunft des Installers
{
echo "$PROGNAME: the Calibre-Autoupdate-Installer (CAUI) v$VERSION"
echo "Copyright (C) Leon Gaultier 2013-2014. This program is distributed"
echo "in the hope that it will be useful, but WITHOUT ANY WARRANTY"
}
func_change_install_dir() # Funktion zur Abfrage des Installationsortes
{
read -p "Wo soll der Calibre Updater installiert werden? [default /usr/local] " UPDATER_INSTALL_LOCATION
if [ -z $UPDATER_INSTALL_LOCATION ]; then
UPDATER_INSTALL_LOCATION=/usr/local
fi
read -p "Wo befindet sich die Calibre Installation? [default /opt/calibre] " CALIBRE_INSTALL_LOCATION
if [ -z $CALIBRE_INSTALL_LOCATION ]; then
CALIBRE_INSTALL_LOCATION=/opt/calibre
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
{
if test ! -d $CALIBRE_INSTALL_LOCATION ; then
echo -e "\n\033[1;31mKeine Calibre Installation unter $CALIBRE_INSTALL_LOCATION gefunden. Installation des Updaters wurde abgebrochen.\e[m\n"; >&2
exit 1
fi
if test -f $BIN/calibre-autoupdate ; then
while ((!gueltig)); do
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
echo -e "\n\033[1;31mDie installation des Updaters wurde abgebrochen.\e[m\n"
exit 1
fi
fi
}
func_install() # Installiert den Calibre Updater
{
func_term_output
func_change_install_dir
func_check_dir
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;32mProgrammdatei wird nach $BIN kopiert\e[m"; sleep 3
cp -v calibre-autoupdate $BIN
chmod -v 755 $BIN/calibre-autoupdate
echo -e "\n\033[1;32mDie Header-Dateien werden nach $INC kopiert\e[m"; sleep 3
cp -v calibre-autoupdate.h calibre-autoupdate_checks.h $INC
chmod -v 644 $INC/calibre-autoupdate.h $INC/calibre-autoupdate_checks.h
echo -e "\n\033[1;32mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"; sleep 3
cp -v calibre-autoupdate.conf $ETC
chmod -v 644 $ETC/calibre-autoupdate.conf
else
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;32mProgrammdatei wird nach $BIN kopiert\e[m\e[m"; sleep 3
sudo cp -v calibre-autoupdate $BIN
sudo chmod -v 755 $BIN/calibre-autoupdate;
echo -e "\n\033[1;32mDie Header-Dateien werden nach $INC kopiert\e[m"; sleep 3
sudo cp -v calibre-autoupdate.h calibre-autoupdate_checks.h $INC
sudo chmod -v 644 $INC/calibre-autoupdate.h $INC/calibre-autoupdate_checks.h;
echo -e "\n\033[1;32mDie Konfigurationsdatei wird nach $ETC kopiert\e[m"; sleep 3
sudo cp -v calibre-autoupdate.conf $ETC
sudo chmod -v 644 $ETC/calibre-autoupdate.conf;
fi
echo -e "\n\033[1;36mDer Calibre-Autoupdater wurde erfolgreich installiert\e[m\n"
}
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 ;;
esac
done
func_term_output
echo -e "\033[1;34mGib eine Option an! Oder verwende -h für Hilfe\n\e[m";
exit 0