-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalibre-autoupdate.h
157 lines (149 loc) · 6.16 KB
/
calibre-autoupdate.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Calibre Auto Updater Header File
# Copyright (C) 2013-2015 Leon Gaultier
#
func_term_output () {
## Beginne mit der Ausgbe ##
tty -s && clear
echo -e "\033[44m \033[0m\033[1m $PROGNAME Version $VERSION\033[0m\n\033[44m \033[0m 2013-2015 by Leon Gaultier\n\e[m";
return 0
}
func_usage () {
func_term_output
echo "Verwendung: $PROGNAME [OPTION...]"
echo "Verwende '$PROGNAME --help' oder '$PROGNAME -h' für mehr Informationen."
return 0
}
func_help () {
func_term_output
echo "Verwende: $PROGNAME [OPTION...]"
echo "$PROGNAME -- Der Calibre! Linux Edition calibre-autoupdater (CAU)"
echo ""
echo "Options:"
echo " -h, --help zeigt die Hilfe an"
echo " -V, --version gibt die Programmversion aus"
echo " -c, --check kontrolliert ob benötigte Programme vorhanden sind"
echo " -u, --uninstall deinstalliert den Calibre-Autoupdater"
echo " --install-calibre installiert Calibre in der aktuellsten Version"
echo " --uninstall-calibre deinstalliert das Calibre Programm"
echo ""
echo -e "Sende Fehler an <[email protected]>.\n";
return 0
}
func_version () {
func_term_output
echo "$PROGNAME: Der Calibre! autoupdater v$VERSION"
echo "Leon Gaultier 2013-2014. Das Programm darf verteilt werden,"
echo -e "in der Hoffnung das es hilfreich ist, aber OHNR IRGENDEINE GARANTIE\n"
return 0
}
func_progressbar() {
echo -e -n $'\033[34m------------------------------------------------------------------------- 100%\r'
echo -e -n "\033[32m0% "
for ((i=0; i<61; i++)); do
echo -e -n "\033[32m="
case $i in
15)
echo -e -n "25%" ;;
30)
echo -e -n "50%" ;;
45)
echo -e -n "75%" ;;
60)
echo -e -n " 100%" ;;
esac
sleep 0.03
done
echo -e "\e[m"
return 0
}
func_uninstall() {
func_term_output
while ((!gueltig)); do # beginn der Ja/Nein Abfrage
echo -e "\033[1;34m"
read -sn1 -t 30 -p "Möchtest Du den Calibre-Autoupdater wirklich DeInstallieren? [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
if (( ! result )); then
echo -e "\033[1;31mDie DeInstallation des Calibre-Autoupdaters wurde durch Dich abgebrochen.\e[m\n"
exit 0
fi
echo -e "\033[1;31mDer Calibre-Autoupdater wird nun deinstalliert.\e[m"
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
rm -rf $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h"; >&2
rm -rf $ETC"calibre-autoupdate.conf"; >&2
rm -rf $BIN"calibre-autoupdate"; >&2
else
sudo rm -rf $INC"calibre-autoupdate.h" $INC"calibre-autoupdate_checks.h"; >&2
sudo rm -rf $ETC"calibre-autoupdate.conf"; >&2
sudo rm -rf $BIN"calibre-autoupdate"; >&2
fi
func_progressbar
echo -e "\n\033[1;32mDer Calibre-Autoupdater wurde deinstalliert. Schade das Du ihn nicht weiter verwendest\n\e[m"
return 0
}
func_uninstall_calibre() {
func_term_output
if [ ! -d $CALIBRE_INSTALL_LOCATION/calibre ] ; then
echo -e "\033[1;31mEs konnte keine Calibre Installation gefunden werden. Die DeInstallation wurde abgebrochen\e[m\n"
exit 0
fi
while ((!gueltig)); do # beginn der Ja/Nein Abfrage
echo -e "\033[1;34mMöchtest Du Calibre wirklich DeInstallieren? Calibre kann dann nicht mehr verwendet werden!"
read -sn1 -t 30 -p "Deine Bücher und die Calibre Bibliothek bleiben erhalten. [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
if (( ! result )); then
echo -e "\n\033[1;31mDie DeInstallation von Calibre wurde durch Dich abgebrochen.\e[m\n"
exit 0
fi
echo -e "\033[1;34mCalibre wird nun deinstalliert.\e[m"
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
calibre-uninstall
else
sudo calibre-uninstall
fi
echo -e "\n\033[1;32mCalibre würde DeInstalliert! Schade es ist ein tolles Programm zur eBookverwaltung :-)\n\e[m"
return 0
}
func_install_calibre() {
# Installationsort von Calibre
func_term_output
read -p "Wohin soll Calibre installiert werden? [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 "Wohin soll Calibre installiert werden? [default /opt] " CALIBRE_INSTALL_LOCATION
done
if [ -w "$CALIBRE_INSTALL_LOCATION" ]; then
echo -e "\n\033[1;32mCalibre wird nun installiert...\n\e[m"
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')"
if [ ! -w "$ECT" ]; then
echo -e "\033[1;34mDu hast kein Schreibrecht auf $ETC. Die Updater Konfigurationsdatei wird mit SUDO angepasst. Bitte gib hierzu Dein Userpasswort im Terminal ein...\n\e[m"
sudo sed -i "s/CALIBRE_INSTALL_LOCATION=.*/CALIBRE_INSTALL_LOCATION=$#{CALIBRE_INSTALL_LOCATION/#/\//\/}/" $ETC"calibre-autoupdate.conf"
else
sed -i "s/CALIBRE_INSTALL_LOCATION=.*/CALIBRE_INSTALL_LOCATION=$#{CALIBRE_INSTALL_LOCATION/#/\//\/}/" $ETC"calibre-autoupdate.conf"
fi
else
echo -e "\033[1;34mDu hast kein Schreibrecht auf $CALIBRE_INSTALL_LOCATION."
echo -e "Calibre wird mit SUDO installiert. Bitte gib hierzu Dein Userpasswort ein...\n\e[m"
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 sed -i "s/CALIBRE_INSTALL_LOCATION=.*/CALIBRE_INSTALL_LOCATION=$#{CALIBRE_INSTALL_LOCATION/#/\//\/}/" $ETC"calibre-autoupdate.conf"
fi
echo -e "\n\n\033[1;32mHerzlichen Glückwunsch. Calibre wurde unter $CALIBRE_INSTALL_LOCATION installiert"
echo -e "und kann nun mit \"calibre\" verwendet werden.\n\033[0m"
return 0
}