Neue Funktion im Installer, Check ob Verzeichnisstruktur vorhanden ist. /etc /bin /include, wenn nicht auf Nachfrage anlegen der Verzeichnisse

This commit is contained in:
Leon Gaultier 2014-04-08 14:40:44 +02:00
parent 1ae1cd638f
commit df14bffdee
3 changed files with 71 additions and 38 deletions

View File

@ -18,7 +18,7 @@
# Programmversion # Programmversion
PROGNAME=`basename $0` PROGNAME=`basename $0`
VERSION="0.14" VERSION="0.14.99.1"
##### Variablen deklaration ##### ##### Variablen deklaration #####
# Downloadseite der Linuxinstallation # Downloadseite der Linuxinstallation
@ -84,7 +84,38 @@ ETC=$UPDATER_INSTALL_LOCATION/etc/
BIN=$UPDATER_INSTALL_LOCATION/bin/ BIN=$UPDATER_INSTALL_LOCATION/bin/
} }
func_check_dir() # Install oder Update Calibre Updater, Check ob Calibre überhaupt installiert ist func_check_dir_structur()
{
func_selection_query()
{
while ((!gueltig)); do # beginn der Ja/Nein Abfrage
echo -e "\033[1;34m"
read -sn1 -t 30 -p "Soll das Verzeichnis angelegt werden? [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;31mBitte Entschuldige, aber die Installation des Calibre-Autoupdaters"
echo -e "konnte nicht zu Ende geführt werden.\e[m\n"
exit 2
fi
echo -e "\033[1;34mDas Verzeichnis wird angelegt!\e[m"
}
if [ ! -d $BIN ]
echo -e "\033[1;34mEs konnte im Installationsort kein /bin Verzeichnis gefunden werden"
fi
}
func_check_calibre_install() # 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.\033[1;34m" echo -e "\n\033[31mKeine Calibre Installation unter $CALIBRE_INSTALL_LOCATION gefunden.\033[1;34m"
@ -203,7 +234,7 @@ func_install_process() # Installiert den Calibre Updater
{ {
func_term_output func_term_output
func_change_install_dir func_change_install_dir
func_check_dir func_check_calibre_install
if [ -w "$BIN" ]; then if [ -w "$BIN" ]; then
func_install_noroot func_install_noroot

View File

@ -71,7 +71,14 @@
# Die Funktion Installation des Updaters wurde aufgeteilt in root_install und noroot_install # 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 # Uninstall Funktion für den calibre-autoupdater mit gleichzeitiger nachfrage und eventueller
# deinstallation vom Calibre Programm # deinstallation vom Calibre Programm
# Der Code wurde überarbeitet, die Dialoge verbessert, Ergebnisse von Funktionsaufrufen in Variablen geschrieben # Der Code wurde überarbeitet, die Dialoge verbessert, Ergebnisse von Funktionsaufrufen in Variablen
# geschrieben
#
# v0.15 die Funktion Versionsvergleich wurde mit der Funktion zum auslesen der Vorhanden Version und der verfügbaren
# Version
# zusammen gelegt.
# der Installer kontrolliert ob am Installationsort des Updaters die Verzeichnisstrucktur /bin /include /etc
# vorhanden ist und wenn nicht legt er sie an.
# #
# 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
@ -125,7 +132,6 @@ CHECK_STATE_RESULT="$?"
case "$CHECK_STATE_RESULT" in case "$CHECK_STATE_RESULT" in
1) 1)
func_check_version func_check_version
func_vercomp $CURRENT_VERSION $LATEST_VERSION # Funktion Versionvergleich
CHECK_VERCOMP_RESULT="$?" CHECK_VERCOMP_RESULT="$?"
case $CHECK_VERCOMP_RESULT in case $CHECK_VERCOMP_RESULT in

View File

@ -40,37 +40,6 @@ else
fi fi
} }
func_vercomp () { # Funktion zum Versionsvergleich
if [[ $1 == $2 ]]
then
return 0
fi
local IFS=.
local i ver1=($1) ver2=($2)
# fill empty fields in ver1 with zeros
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
do
ver1[i]=0
done
for ((i=0; i<${#ver1[@]}; i++))
do
if [[ -z ${ver2[i]} ]]
then
# fill empty fields in ver2 with zeros
ver2[i]=0
fi
if ((10#${ver1[i]} > 10#${ver2[i]}))
then
return 1
fi
if ((10#${ver1[i]} < 10#${ver2[i]}))
then
return 2
fi
done
return 0
}
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}'`
@ -95,9 +64,36 @@ func_check_version () {
LATEST_VERSION=`curl -s $CALIBRE_DOWNLOAD_PAGE | grep 'latest release of calibre' | sed 's/[^0-9.]*\([1-9]*[0-9]\.[1-9]*[0-9]\).*/\1/'` LATEST_VERSION=`curl -s $CALIBRE_DOWNLOAD_PAGE | grep 'latest release of calibre' | sed 's/[^0-9.]*\([1-9]*[0-9]\.[1-9]*[0-9]\).*/\1/'`
#Ermitteln der aktuell installierten Version. #Ermitteln der aktuell installierten Version.
CURRENT_VERSION=`calibre --version | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'` CURRENT_VERSION=`calibre --version | sed 's/[^0-9.]*\([0-9.]*\).*/\1/'`
return 0
}
if [[ $CURRENT_VERSION == $LATEST_VERSION ]]
then
return 0
fi
local IFS=.
local i ver1=($CURRENT_VERSION) ver2=($LATEST_VERSION)
# fill empty fields in ver1 with zeros
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))
do
ver1[i]=0
done
for ((i=0; i<${#ver1[@]}; i++))
do
if [[ -z ${ver2[i]} ]]
then
# fill empty fields in ver2 with zeros
ver2[i]=0
fi
if ((10#${ver1[i]} > 10#${ver2[i]}))
then
return 1
fi
if ((10#${ver1[i]} < 10#${ver2[i]}))
then
return 2
fi
done
return 0
}
func_check_prog () { func_check_prog () {
func_term_output func_term_output