calibre-autoupdate/CAU_Installer
Leon Gaultier 480aa9c811 Der Code wurde komplett überarbeitet und vieles neu geschrieben. Sauberer Code und weniger Abfragen.
Die Bedingungen und Schleifen wurden einfacher und logischer geschrieben

Die Prüfung ob Calibre noch gestartet ist wenn ein Update gemacht wird ist nun simpler geschrieben,
und es wird nicht mehr hart beendet sondern gewartet bis der Benutzer Calibre beendet

Die Calibre Installation ist vom Installer in das Updaterskript gewandert, und im Zuge einer Calibre-
installation wird automatisch die Konfigurationsdatei des Updaters angepasst (übergabe CalibreInstallOrt)

Es wird wieder geprüft ob Calibre installiert ist bevor der Updater gestartet wird

Version 0.20
2014-04-15 11:44:30 +02:00

134 lines
5.6 KiB
Bash
Executable File

#!/bin/bash
# Calibre Auto Updater Installscript
# Copyright (C) 2013-2014 Leon Gaultier
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>
# Programmversion
PROGNAME=`basename $0`
VERSION="0.20"
##### Variablen deklaration #####
# Downloadseite der Linuxinstallation
DOWNLOAD_URL=https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py
#################################
########### Einbinden der Headerfiles ################
source CAU_Installer.h
#################################
func_change_install_dir() { # Funktion zur Abfrage der Installationsorte vom Updater und von Calibre
# Installationsort vom Updater
read -p "Wo soll der Calibre-Autoupdater installiert werden? [default /usr/local] " UPDATER_INSTALL_LOCATION
if [ -z $UPDATER_INSTALL_LOCATION ]; then
UPDATER_INSTALL_LOCATION=/usr/local
fi
while [ ! -d $UPDATER_INSTALL_LOCATION ]; do
echo -e "\n\033[1;31mDas Verzeichnis $UPDATER_INSTALL_LOCATION existiert nicht. Bitte gib ein existierendes Verzeichnis ein!\e[m"
read -p "Wo soll der Calibre-Autoupdater installiert werden? [default /usr/local] " UPDATER_INSTALL_LOCATION
done
# Installationsort von Calibre
read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION
if [ -z $CALIBRE_INSTALL_LOCATION ]; then
CALIBRE_INSTALL_LOCATION=/opt
fi
while [ ! -d $CALIBRE_INSTALL_LOCATION ]; do
echo -e "\n\033[1;31mDas Verzeichnis $CALIBRE_INSTALL_LOCATION existiert nicht. Bitte gib ein existierendes Verzeichnis ein!\e[m"
read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION
done
# Verzeichnishierarchie im Installationsort
INC=$UPDATER_INSTALL_LOCATION/include/
ETC=$UPDATER_INSTALL_LOCATION/etc/
BIN=$UPDATER_INSTALL_LOCATION/bin/
return 0
}
func_install_noroot() {
echo -e "\n\033[1;36mDie Programm-Dateien werden nach $BIN kopiert\e[m\e[m"
if [ ! -d $BIN ]; then mkdir $BIN; fi; if [ ! -d $ETC ]; then mkdir $ETC; fi; if [ ! -d $INC ]; then mkdir $INC; fi
cp calibre-autoupdate $BIN; chmod 755 $BIN"calibre-autoupdate"
sed -i "s/_-ETC-_/${ETC//\//\/}/g" $BIN"calibre-autoupdate"
sed -i "s/_-VERSION-_/${VERSION//\//\/}/g" $BIN"calibre-autoupdate"
func_progressbar
echo -e "\n\033[1;36mDie Header-Dateien werden nach $INC kopiert\e[m"
cp calibre-autoupdate.h calibre-autoupdate_checks.h $INC; chmod 644 $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h"
func_progressbar
echo -e "\n\033[1;36mDie Konfigurations-Dateien werden nach $ETC kopiert\e[m"
cp calibre-autoupdate.conf $ETC; chmod 644 $ETC"calibre-autoupdate.conf";
sed -i "s/_-INC-_/${INC//\//\/}/g" $ETC"calibre-autoupdate.conf"
sed -i "s/_-BIN-_/${BIN//\//\/}/g" $ETC"calibre-autoupdate.conf"
sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/g" $ETC"calibre-autoupdate.conf"
func_progressbar
return 0
}
func_install_root() {
echo -e "\n\033[1;34mDu hast kein Schreibrecht auf $UPDATER_INSTALL_LOCATION, daher wird SUDO versucht zu verwenden...\e[m";
sudo echo -e "\n\033[1;36mDie Programm-Dateien werden nach $BIN kopiert\e[m\e[m"
if [ ! -d $BIN ]; then sudo mkdir $BIN; fi; if [ ! -d $ETC ]; then sudo mkdir $ETC; fi; if [ ! -d $INC ]; then sudo mkdir $INC; fi
sudo cp calibre-autoupdate $BIN; sudo chmod 755 $BIN"calibre-autoupdate"
sudo sed -i "s/_-ETC-_/${ETC//\//\/}/" $BIN"calibre-autoupdate"
sudo sed -i "s/_-VERSION-_/${VERSION//\//\/}/" $BIN"calibre-autoupdate"
func_progressbar
echo -e "\n\033[1;36mDie Header-Dateien werden nach $INC kopiert\e[m"
sudo cp calibre-autoupdate.h calibre-autoupdate_checks.h $INC; sudo chmod 644 $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h"
func_progressbar
echo -e "\n\033[1;36mDie Konfigurations-Dateien werden nach $ETC kopiert\e[m"
sudo cp calibre-autoupdate.conf $ETC; sudo chmod 644 $ETC"calibre-autoupdate.conf";
sudo sed -i "s/_-INC-_/${INC//\//\/}/" $ETC"calibre-autoupdate.conf"
sudo sed -i "s/_-BIN-_/${BIN//\//\/}/" $ETC"calibre-autoupdate.conf"
sudo sed -i "s/_-CALIBRE_INSTALL_LOCATION-_/${CALIBRE_INSTALL_LOCATION//\//\/}/" $ETC"calibre-autoupdate.conf"
func_progressbar
return 0
}
func_install_process() { # Installiert den Calibre Updater
func_term_output
func_change_install_dir
if [ -w "$UPDATER_INSTALL_LOCATION" ]; then
func_install_noroot
else
func_install_root
fi
echo -e "\n\n\033[1;32mDer Calibre-Autoupdater wurde erfolgreich installiert und"
echo -e "kann nun mit \"calibre-update\" oder \"$BIN"calibre-update"\" aufgerufen werden\e[m\n"
return 0
}
#### Main Funktion ####
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
--help | -h )
func_help; exit 0 ;;
--version | -V | -v )
func_version; exit 0 ;;
--install | -i | -I )
func_install_process; exit 0 ;;
esac
done
func_term_output
func_usage
echo -e "\e[m"
exit 0