2014-04-01 18:58:03 +00:00
|
|
|
#!/bin/bash
|
2014-04-08 04:49:28 +00:00
|
|
|
# Calibre Auto Updater Installscript
|
2015-06-03 04:30:04 +00:00
|
|
|
# Copyright (C) 2013-2015 Leon Gaultier
|
2014-04-08 04:49:28 +00:00
|
|
|
#
|
|
|
|
# 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/>
|
|
|
|
|
2014-04-01 18:58:03 +00:00
|
|
|
|
|
|
|
# Programmversion
|
|
|
|
PROGNAME=`basename $0`
|
2015-06-01 05:31:25 +00:00
|
|
|
VERSION="0.24"
|
2014-04-08 04:49:28 +00:00
|
|
|
|
|
|
|
##### Variablen deklaration #####
|
|
|
|
# Downloadseite der Linuxinstallation
|
|
|
|
DOWNLOAD_URL=https://github.com/kovidgoyal/calibre/raw/master/setup/linux-installer.py
|
|
|
|
|
|
|
|
#################################
|
2014-04-10 12:34:42 +00:00
|
|
|
########### Einbinden der Headerfiles ################
|
|
|
|
source CAU_Installer.h
|
2014-04-01 18:58:03 +00:00
|
|
|
|
2014-04-10 12:34:42 +00:00
|
|
|
#################################
|
2014-04-08 04:49:28 +00:00
|
|
|
|
|
|
|
|
2014-04-15 04:22:11 +00:00
|
|
|
func_change_install_dir() { # Funktion zur Abfrage der Installationsorte vom Updater und von Calibre
|
2014-04-10 12:34:42 +00:00
|
|
|
# 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
|
2014-04-01 18:58:03 +00:00
|
|
|
fi
|
2014-04-10 12:34:42 +00:00
|
|
|
while [ ! -d $UPDATER_INSTALL_LOCATION ]; do
|
2014-11-20 08:48:38 +00:00
|
|
|
echo -e "\n\033[1;31mDas Verzeichnis $UPDATER_INSTALL_LOCATION existiert nicht. Bitte gib ein existierendes Verzeichnis an!\e[m"
|
2014-04-10 12:34:42 +00:00
|
|
|
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
|
2014-04-01 18:58:03 +00:00
|
|
|
fi
|
2014-04-16 04:08:44 +00:00
|
|
|
while [ ! -d $CALIBRE_INSTALL_LOCATION ]; do # Abfangen bei nicht vorhanden sein des Installationsortes
|
2014-11-20 08:48:38 +00:00
|
|
|
echo -e "\n\033[1;31mDas Verzeichnis $CALIBRE_INSTALL_LOCATION existiert nicht. Bitte gib ein existierendes Verzeichnis an!\e[m"
|
2014-04-10 12:34:42 +00:00
|
|
|
read -p "Wo befindet sich die Calibre Installation? [default /opt] " CALIBRE_INSTALL_LOCATION
|
2014-04-05 13:06:35 +00:00
|
|
|
done
|
2014-04-16 04:08:44 +00:00
|
|
|
# Verzeichnishierarchie am Installationsort
|
2014-04-10 12:34:42 +00:00
|
|
|
INC=$UPDATER_INSTALL_LOCATION/include/
|
|
|
|
ETC=$UPDATER_INSTALL_LOCATION/etc/
|
|
|
|
BIN=$UPDATER_INSTALL_LOCATION/bin/
|
|
|
|
return 0
|
2014-04-05 13:06:35 +00:00
|
|
|
}
|
|
|
|
|
2014-04-15 04:22:11 +00:00
|
|
|
func_install_noroot() {
|
2014-04-10 12:34:42 +00:00
|
|
|
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"
|
2014-11-20 10:27:34 +00:00
|
|
|
sed -i "s@_-ETC-_@$ETC@g" $BIN/calibre-autoupdate # Eintragen des Verzeichnisfades zum Configfile im Updaterscript
|
|
|
|
sed -i "s@_-VERSION-_@$VERSION@g" $BIN/calibre-autoupdate # Eintragen der Version vom Updater im Main-Updatescript
|
2014-04-16 04:08:44 +00:00
|
|
|
func_progressbar # Fortschritsbalken des Kopiervorganges; Fake
|
2014-04-10 12:34:42 +00:00
|
|
|
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";
|
2014-11-20 10:27:34 +00:00
|
|
|
sed -i "s@_-INC-_@$INC@g" $ETC/calibre-autoupdate.conf # In allen drei sed Befehlen werden Verzeichnisfade in das Configfile geschrieben
|
|
|
|
sed -i "s@_-BIN-_@$BIN@g" $ETC/calibre-autoupdate.conf
|
|
|
|
sed -i "s@_-CALIBRE_INSTALL_LOCATION-_@$CALIBRE_INSTALL_LOCATION@g" $ETC/calibre-autoupdate.conf
|
2014-04-10 12:34:42 +00:00
|
|
|
func_progressbar
|
|
|
|
return 0
|
2014-04-08 04:49:28 +00:00
|
|
|
}
|
|
|
|
|
2014-04-16 04:08:44 +00:00
|
|
|
func_install_root() { # Wie in der func_install_noroot Funktion nur mit dem SUDO Befehl für Rootinstallation
|
2014-04-10 12:34:42 +00:00
|
|
|
echo -e "\n\033[1;34mDu hast kein Schreibrecht auf $UPDATER_INSTALL_LOCATION, daher wird SUDO versucht zu verwenden...\e[m";
|
2014-04-10 14:49:39 +00:00
|
|
|
sudo echo -e "\n\033[1;36mDie Programm-Dateien werden nach $BIN kopiert\e[m\e[m"
|
2014-04-10 12:34:42 +00:00
|
|
|
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"
|
2014-11-20 10:27:34 +00:00
|
|
|
sudo sed -i "s@_-ETC-_@$ETC@g" $BIN/calibre-autoupdate
|
|
|
|
sudo sed -i "s@_-VERSION-_@$VERSION@g" $BIN/calibre-autoupdate
|
2014-04-10 12:34:42 +00:00
|
|
|
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
|
2014-04-10 14:49:39 +00:00
|
|
|
echo -e "\n\033[1;36mDie Konfigurations-Dateien werden nach $ETC kopiert\e[m"
|
2014-04-10 12:34:42 +00:00
|
|
|
sudo cp calibre-autoupdate.conf $ETC; sudo chmod 644 $ETC"calibre-autoupdate.conf";
|
2014-11-20 10:27:34 +00:00
|
|
|
sudo sed -i "s@_-INC-_@$INC@g" $ETC/calibre-autoupdate.conf
|
|
|
|
sudo sed -i "s@_-BIN-_@$BIN@g" $ETC/calibre-autoupdate.conf
|
|
|
|
sudo sed -i "s@_-CALIBRE_INSTALL_LOCATION-_@$CALIBRE_INSTALL_LOCATION@g" $ETC/calibre-autoupdate.conf
|
2014-04-10 12:34:42 +00:00
|
|
|
func_progressbar
|
|
|
|
return 0
|
2014-04-08 04:49:28 +00:00
|
|
|
}
|
|
|
|
|
2014-04-15 04:22:11 +00:00
|
|
|
func_install_process() { # Installiert den Calibre Updater
|
2014-04-16 04:08:44 +00:00
|
|
|
func_term_output # Fake Fortschritsbalken
|
|
|
|
func_change_install_dir # Auswahl der Installationsorte
|
|
|
|
if [ -w "$UPDATER_INSTALL_LOCATION" ]; then # Installort Schreibgeschützt?
|
|
|
|
func_install_noroot # Aufruf Installfunktion, Installation bei nicht schreibgeschützt
|
2014-04-10 12:34:42 +00:00
|
|
|
else
|
2014-04-16 04:08:44 +00:00
|
|
|
func_install_root # Aufruf Installfunktion, Install als root da schreibgeschützt
|
2014-04-10 12:34:42 +00:00
|
|
|
fi
|
2014-04-15 09:44:30 +00:00
|
|
|
echo -e "\n\n\033[1;32mDer Calibre-Autoupdater wurde erfolgreich installiert und"
|
2014-04-10 12:34:42 +00:00
|
|
|
echo -e "kann nun mit \"calibre-update\" oder \"$BIN"calibre-update"\" aufgerufen werden\e[m\n"
|
|
|
|
return 0
|
2014-04-02 04:04:52 +00:00
|
|
|
}
|
|
|
|
|
2014-04-01 18:58:03 +00:00
|
|
|
|
2014-04-10 12:34:42 +00:00
|
|
|
#### Main Funktion ####
|
2014-04-16 04:08:44 +00:00
|
|
|
while test "$#" -gt 0; do # Abfangen und Auswerten der Optionen die beim Aufruf mit angehängt wurden
|
2014-04-10 12:34:42 +00:00
|
|
|
arg="$1"
|
|
|
|
shift
|
|
|
|
case $arg in
|
|
|
|
-*=*) optarg=`echo "$arg" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
|
|
|
|
*) optarg= ;;
|
|
|
|
esac
|
2014-04-01 18:58:03 +00:00
|
|
|
|
2014-04-10 12:34:42 +00:00
|
|
|
case "$arg" in
|
|
|
|
--help | -h )
|
2014-04-01 18:58:03 +00:00
|
|
|
func_help; exit 0 ;;
|
2014-04-10 12:34:42 +00:00
|
|
|
--version | -V | -v )
|
2014-04-01 18:58:03 +00:00
|
|
|
func_version; exit 0 ;;
|
2014-04-10 12:34:42 +00:00
|
|
|
--install | -i | -I )
|
2014-04-08 04:49:28 +00:00
|
|
|
func_install_process; exit 0 ;;
|
2014-04-10 12:34:42 +00:00
|
|
|
esac
|
|
|
|
done
|
|
|
|
func_term_output
|
|
|
|
func_usage
|
|
|
|
echo -e "\e[m"
|
2014-09-24 08:36:05 +00:00
|
|
|
exit 0
|