Installer des Updaters ausgebaut und kleine Verbesserungen und Korrekturen am Updater
This commit is contained in:
parent
a1fa28fb31
commit
841e19e457
147
CAU_Installer
Executable file
147
CAU_Installer
Executable file
@ -0,0 +1,147 @@
|
||||
#!/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
|
@ -52,6 +52,7 @@
|
||||
# auf im Calibre Installationspfad hat oder nicht.
|
||||
#
|
||||
# v0.9 einbinden eines Konfigurationsfiles, auslagern einiger Funktionen in Headerfiles
|
||||
# einbringen der Dateien in die Linux Verzeichnishierarchie
|
||||
#
|
||||
# TODO auslesen der Download URL von der Download Seite
|
||||
# kontrolle ob alle benötigten programme für das skript vorhanden sind
|
||||
@ -60,13 +61,16 @@
|
||||
######################################
|
||||
######################################
|
||||
|
||||
# Installationsfade in der Verzeichnishierarchie
|
||||
INC=/usr/local/include/
|
||||
ETC=/usr/local/etc/
|
||||
BIN=/usr/local/bin/
|
||||
|
||||
# Programmversion
|
||||
PROGNAME=`basename $0`
|
||||
VERSION="0.8.99"
|
||||
VERSION="0.9"
|
||||
QUIET=0
|
||||
|
||||
|
||||
|
||||
#################################
|
||||
######### CONFIGURATION #########
|
||||
# Diese Version funktioniert für alle Linuxsysteme nur so lange
|
||||
@ -74,23 +78,23 @@ QUIET=0
|
||||
#################################
|
||||
|
||||
# Einlesen des Configfiles mit den Constanten für die Calibre Downloadseite und Hauptseite
|
||||
source ./calibre-autoupdate.conf
|
||||
source $ETC/calibre-autoupdate.conf
|
||||
|
||||
|
||||
#################################
|
||||
##### Zusätzliche Funktionen aus Headerfiles laden #####
|
||||
|
||||
source ./calibre-autoupdate.h
|
||||
source ./calibre-autoupdate_checks.h
|
||||
source $INC/calibre-autoupdate.h
|
||||
source $INC/calibre-autoupdate_checks.h
|
||||
|
||||
|
||||
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.";
|
||||
stat_1=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_CALIBRE_DOWNLOAD_PAGE)
|
||||
echo -e "\033[32m Status Codes von \"$CHECK_CALIBRE_DOWNLOAD_PAGE\" erhalten";
|
||||
echo -e "\033[1;34m Hole Status Code von \"$CHECK_DOWNLOAD_URL\". Bitte warten.";
|
||||
echo -e "\033[32m Status Codes von $CHECK_CALIBRE_DOWNLOAD_PAGE erhalten";
|
||||
echo -e "\033[1;34m Hole Status Code von $CHECK_DOWNLOAD_URL. Bitte warten.";
|
||||
stat_2=$(curl -o /dev/null --silent --head --write-out '%{http_code}' $CHECK_DOWNLOAD_URL)
|
||||
echo -e "\033[32m Status Codes von \"$CHECK_DOWNLOAD_URL\" erhalten";
|
||||
echo -e "\033[32m Status Codes von $CHECK_DOWNLOAD_URL erhalten";
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -126,18 +130,18 @@ case $? in
|
||||
0)
|
||||
$NOTIFY "Deine Calibre Version ist auf dem aktuellsten Stand ($CURRENT_VERSION).";;
|
||||
1)
|
||||
$NOTIFY "Uh Oh! Deine Calibre Version ist aktueller wie die letzte Verfügbare! (Installiert: \"$CURRENT_VERSION\", Letzte Verfügbare: \"$LATEST_VERSION\")";;
|
||||
$NOTIFY "Uh Oh! Deine Calibre Version ist aktueller wie die letzte Verfügbare! (Installiert: $CURRENT_VERSION, Letzte Verfügbare: $LATEST_VERSION)";;
|
||||
2)
|
||||
$NOTIFY "Ein Calibre Update ist verfügbar. (Installiert: \"$CURRENT_VERSION\", letzte Verfügbare: \"$LATEST_VERSION\")"
|
||||
$NOTIFY "Ein Calibre Update ist verfügbar. (Installiert: $CURRENT_VERSION, letzte Verfügbare: $LATEST_VERSION)"
|
||||
# Installiert die aktuellste verfügbare Version von der Calibre Homepage
|
||||
func_check_run_calibre # Aufruf der Funktion ob Calibre gestartet ist
|
||||
|
||||
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
|
||||
$NOTIFY "Du hast Schreibrechte auf \"$CALIBRE_INSTALL_LOCATION\" Das Update wird nun installiert..."
|
||||
$NOTIFY "Du hast Schreibrechte auf $CALIBRE_INSTALL_LOCATION Das Update wird nun installiert..."
|
||||
echo -e "\033[1;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')"
|
||||
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"
|
||||
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
|
||||
@ -147,10 +151,10 @@ case $? in
|
||||
;;
|
||||
|
||||
2)
|
||||
$NOTIFY "Versionsvergleich fehlgeschlagen!!! Die Calibre Homepage \"$CHECK_CALIBRE_DOWNLOAD_PAGE\" ist nicht verfügbar!"
|
||||
$NOTIFY "Versionsvergleich fehlgeschlagen!!! Die Calibre Homepage $CHECK_CALIBRE_DOWNLOAD_PAGE ist nicht verfügbar!"
|
||||
;;
|
||||
3)
|
||||
$NOTIFY "Update fehlgeschlagen!!! Die Download Seite \"$CHECK_DOWNLOAD_URL\" ist nicht verfügbar!"
|
||||
$NOTIFY "Update fehlgeschlagen!!! Die Download Seite $CHECK_DOWNLOAD_URL ist nicht verfügbar!"
|
||||
;;
|
||||
4)
|
||||
$NOTIFY "Update und Versionsvergleich fehlgeschlagen!!! Kann kein Netzwerkinterface finden!"
|
||||
|
@ -12,7 +12,7 @@ func_help ()
|
||||
{
|
||||
func_term_output
|
||||
echo "Usage: $PROGNAME [OPTION...]"
|
||||
echo "$PROGNAME -- the Calibre! Linux Edition calibre-autoupdater"
|
||||
echo "$PROGNAME -- the Calibre! Linux Edition calibre-autoupdater (CAU)"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " -q, --quiet ohne Konsolenausgabe"
|
||||
|
Loading…
x
Reference in New Issue
Block a user