Optionsschalter für check externer Programme, zusätzlich check externer Programme nach Programmaufruf, Installation je nach dem ob Schreibrechte im installort

This commit is contained in:
Leon Gaultier 2014-03-28 09:17:59 +01:00
parent 0720809d02
commit b02a06b83a

View File

@ -47,6 +47,10 @@
# V0.7 Der Updateprozes wurde in eine Prozedure geschrieben und die main Prozedure gibt, # V0.7 Der Updateprozes wurde in eine Prozedure geschrieben und die main Prozedure gibt,
# nur noch Hilfe und Verion aus oder startet sofort die Update Prozedure # nur noch Hilfe und Verion aus oder startet sofort die Update Prozedure
# #
# V0.8 Optionsschalter hinzugefügt, Kontrolle ob benötigte Programme vorhanden sind.
# Unterschiedliche Installationsart und -dialog je nach dem ob man Schreibrechte
# auf im Calibre Installationspath hat oder nicht.
#
# TODO auslesen der Download URL von der Download Seite # 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
# #
@ -73,10 +77,15 @@ DOWNLOAD_URL=https://github.com/kovidgoyal/calibre/raw/master/setup/linux-instal
CHECK_CALIBRE_DOWNLOAD_PAGE=http://calibre-ebook.com CHECK_CALIBRE_DOWNLOAD_PAGE=http://calibre-ebook.com
CHECK_DOWNLOAD_URL=https://github.com CHECK_DOWNLOAD_URL=https://github.com
# externe Programme welche benötigt werden
CURL=/usr/bin/curl
NOTIFY=/usr/bin/notify-send
AWK=/usr/bin/awk
# Programmversion # Programmversion
progname=`basename $0` PROGNAME=`basename $0`
version="0.7" VERSION="0.7.991"
quiet=0 QUIET=0
################################# #################################
@ -84,26 +93,28 @@ quiet=0
func_usage () func_usage ()
{ {
echo "Usage: $progname [OPTION...]" echo "Usage: $PROGNAME [OPTION...]"
echo "Try '$progname --help' or '$progname -h' for more information." echo "Try '$PROGNAME --help' or '$PROGNAME -h' for more information."
} }
func_help () func_help ()
{ {
echo "Usage: $progname [OPTION...]" func_term_output
echo "$progname -- the Calibre! Linux Edition calibre-autoupdater" echo "Usage: $PROGNAME [OPTION...]"
echo "$PROGNAME -- the Calibre! Linux Edition calibre-autoupdater"
echo "" echo ""
echo "Options:" echo "Options:"
echo " -q, --quiet Disable output" echo " -q, --quiet ohne Konsolenausgabe"
echo " -h, --help Give this help list" echo " -h, --help zeigt die Hilfe an"
echo " -V, --version Print program version" echo " -V, --version gibt die Programmversion aus"
echo " -c, --check checkt ob benötigte Programme vorhanden sind"
echo "" echo ""
echo "Report bugs to <leongaultier@gmail.com>." echo -e "Report bugs to <leongaultier@gmail.com>.\n";
} }
func_version () func_version ()
{ {
echo "$progname: the Calibre! autoupdater v$version" echo "$PROGNAME: the Calibre! autoupdater v$VERSION"
echo "Copyright (C) Leon Gaultier 2013-2014. This program is distributed" echo "Copyright (C) Leon Gaultier 2013-2014. This program is distributed"
echo "in the hope that it will be useful, but WITHOUT ANY WARRANTY" echo "in the hope that it will be useful, but WITHOUT ANY WARRANTY"
@ -199,7 +210,7 @@ func_http_status_code () {
func_term_output () { func_term_output () {
## Beginne mit der Ausgbe ## ## Beginne mit der Ausgbe ##
tty -s && clear 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"; 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 return 0
} }
@ -212,11 +223,26 @@ func_check_version () {
} }
#func_check_progs () { func_check_prog () {
func_term_output
if test ! -f $CURL ; then
echo -e "\033[31mDu hast Curl nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2
exit 1
fi
if test ! -f $NOTIFY ; then
echo -e "\033[31mDu hast Notify-Send nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2
exit 1
fi
if test ! -f $AWK ; then
echo -e "\033[31mDu hast AWK nich installiert, es wird aber für die Updatefunktion benötigt\n"; >&2
exit 1
fi
#} echo -e "\033[32mAlle benötigten Programme sind installiert. Starte $PROGNAME ohne Optionen und"
echo -e "es wird nach einer aktuellen Calibre Version geschaut und Upgedatet\n";
}
####################################################### #######################################################
####################################################### #######################################################
## main vom Script --- Start des Updater Skripts ## main vom Script --- Start des Updater Skripts
@ -245,10 +271,16 @@ case $? in
$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 # Installiert die aktuellste verfügbare Version von der Calibre Homepage
func_check_run_calibre # Aufruf der Funktion ob Calibre gestartet ist 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..."
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 "Das Update wird nun installiert. Bitte gib hierzu Dein Userpasswort im Terminalfenster ein..." $NOTIFY "Das Update wird nun installiert. Bitte gib hierzu Dein Userpasswort im Terminalfenster ein..."
echo -e "\033[1;34m" 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')" 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
$NOTIFY "Calibre wurde upgedatet." $NOTIFY "Calibre wurde upgedatet."
;; ;;
esac esac
@ -278,14 +310,17 @@ do
case "$arg" in case "$arg" in
--quiet | -q ) --quiet | -q )
quiet=1 ;; 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 )
func_check_prog; exit 0 ;;
esac esac
done done
func_check_prog
func_update func_update
exit 0 exit 0