annotate packaging/linux-installer.inc @ 1268:2efdf2faf4e5

Remove dead variable and fix possible null pointer dereference Problems found by clang static-analyzer
author Andre Heinecke <andre.heinecke@intevation.de>
date Fri, 26 Sep 2014 19:31:53 +0200
parents 469c1a04b678
children 5e0c338552b4
rev   line source
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
1 #!/bin/bash
1048
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
2 # Um TrustBridge zu installieren:
1189
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
3 # 1. Prüfen Sie, ob Sie dieser Datei genügend vertrauen, um ihr die
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
4 # Kontrolle über diesen Rechner zu übergeben. Beispielsweise
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
5 # durch Vergleich mit einer starken Prüfsumme aus einer zweiten,
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
6 # unabhängigen Quelle.
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
7 # 2. Öffnen Sie eine Kommandozeile (Anwendung "Terminal").
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
8 # 3. Wechseln Sie in das Verzeichnis, in dem diese Datei gespeichert
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
9 # ist (z.B. per Kommandozeile mit: "cd ~/Schreibtisch").
1049
52c68a773194 Ubuntu Installer, short instruction with explicit mention that this example is for one user only.
Bernhard Reiter <bernhard@intevation.de>
parents: 1048
diff changeset
10 # 4. Starten Sie die Anwendung auf der Kommandozeile, beispielsweise
1189
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
11 # als Installation nur für den aktuellen Nutzer, indem Sie
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
12 # eingeben:
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
13 # bash TrustBridge-1.0.0-amd64.sh
1048
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
14 # Tipp: Die Tab-Taste nach dem "Tr" ergänzt oft den ganzen Namen.
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
15 #
1189
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
16 # Übrigens, wir konnten kein übliches .deb-Paket verwenden, da
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
17 # TrustBridge Ihnen auch die Installation als reiner Nutzer ohne
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
18 # Admin-Rechte ermöglichen soll.
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
19 #
1048
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
20 #
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
21 # To install TrustBridge:
1189
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
22 # 1. Verify that you trust this specific file far enough, that you
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
23 # are willing to hand over the control of your computer to it. For
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
24 # example compare a strong checksum of the file to one from a
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
25 # second, independent source.
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
26 # 2. Open a command line (application "Terminal").
1048
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
27 # 3. Change your working directory to where this file is stored.
1189
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
28 # (e.g. type "cd ~/Desktop" on your command line).
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
29 # 4. Start the installation on the command line, e.g. for the current
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
30 # user only by typing something like:
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
31 # bash TrustBridge-1.0.0-amd64.sh
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
32 # Hint: If you press the tab-key after "Tr" it may complete the
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
33 # filename.
1048
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
34 #
1189
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
35 # By the way: We could not have used a .deb package, because the
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
36 # installation must also work without without adminstrator
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
37 # priviledges.
1048
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
38 #
7bd1d723414d (issue84) Ubuntu Installer: Add installation howto.
Bernhard Reiter <bernhard@intevation.de>
parents: 1040
diff changeset
39 #
1200
7b24109c1a55 Added linebreak in header text of linux-installer.in
Emanuel Schuetze <emanuel@intevation.de>
parents: 1194
diff changeset
40 # Copyright (C) 2014
7b24109c1a55 Added linebreak in header text of linux-installer.in
Emanuel Schuetze <emanuel@intevation.de>
parents: 1194
diff changeset
41 # by Bundesamt für Sicherheit in der Informationstechnik (BSI).
7b24109c1a55 Added linebreak in header text of linux-installer.in
Emanuel Schuetze <emanuel@intevation.de>
parents: 1194
diff changeset
42 # Software engineering by Intevation GmbH.
1165
d51ae656cfd6 Added copyright/license header [m13/issue101].
Sascha Wilde <wilde@intevation.de>
parents: 1161
diff changeset
43 #
d51ae656cfd6 Added copyright/license header [m13/issue101].
Sascha Wilde <wilde@intevation.de>
parents: 1161
diff changeset
44 # This file is Free Software under the GNU GPL (v>=2)
d51ae656cfd6 Added copyright/license header [m13/issue101].
Sascha Wilde <wilde@intevation.de>
parents: 1161
diff changeset
45 # and comes with ABSOLUTELY NO WARRANTY!
1229
6154d554b3af (issue101) Text improved, pointing to local dir and the online repo.:
Bernhard Reiter <bernhard@intevation.de>
parents: 1200
diff changeset
46 # For details and the license of TrustBridge
6154d554b3af (issue101) Text improved, pointing to local dir and the online repo.:
Bernhard Reiter <bernhard@intevation.de>
parents: 1200
diff changeset
47 # see the folder "licenses" after installation
6154d554b3af (issue101) Text improved, pointing to local dir and the online repo.:
Bernhard Reiter <bernhard@intevation.de>
parents: 1200
diff changeset
48 # check the corresponding revision of it online at
6154d554b3af (issue101) Text improved, pointing to local dir and the online repo.:
Bernhard Reiter <bernhard@intevation.de>
parents: 1200
diff changeset
49 # https://wald.intevation.org/hg/trustbridge/file/tip/licenses
1165
d51ae656cfd6 Added copyright/license header [m13/issue101].
Sascha Wilde <wilde@intevation.de>
parents: 1161
diff changeset
50
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
51 set -u
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
52
1139
1c9001db6ea2 Split up linux installer in to be able to create a uninstaller (TODO).
Sascha Wilde <wilde@intevation.de>
parents: 1134
diff changeset
53 ###INCLUDE:linux-installer-common.inc
1150
a72d59f8c3ea Create uninstaller.
Sascha Wilde <wilde@intevation.de>
parents: 1140
diff changeset
54 ###INCLUDE:linux-installer.l10n-de
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
55
1139
1c9001db6ea2 Split up linux installer in to be able to create a uninstaller (TODO).
Sascha Wilde <wilde@intevation.de>
parents: 1134
diff changeset
56 ###INCLUDE:linux-installer-uninstall.inc
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
57
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
58 usage()
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
59 {
799
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
60 getxt "Usage: %s [OPTION]...\n" "$ME"
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
61 getxt "Install TrustBridge.\n\n"
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
62 getxt "Options:\n"
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
63 getxt " -p, --prefix=PATH install files in PATH\n"
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
64 getxt " -f, --force install to given prefix, even when a current\n"
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
65 getxt " installation with different prefix exists.\n"
1177
53a02fbe2fc9 (issue112) Rename deinstaller to uninstaller
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1173
diff changeset
66 getxt " -u, --uninstall uninstall files from current installation\n"
799
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
67 getxt " -s, --system create a system wide (de)installation\n"
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
68 getxt " --help display this help and exit\n"
933860224d1e l10n for usage text.
Sascha Wilde <wilde@intevation.de>
parents: 795
diff changeset
69 getxt " --version output version information and exit\n"
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
70 exit $1
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
71 }
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
72
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
73 parse_args()
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
74 {
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
75 OPTS=`getopt \
1257
551b274ec4d1 Remove no longer existing option show-after-update
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1251
diff changeset
76 -l uninstall,update,force,help,prefix:,system,version \
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
77 -o d,f,p:,s -n "$ME" -- "$@"`
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
78 [ $? -eq 0 ] || usage 23
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
79
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
80 eval set -- "$OPTS"
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
81
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
82 while true ; do
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
83 case "$1" in
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
84 --prefix|-p)
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
85 instcfg[PREFIX]="$2"
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
86 shift 2
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
87 ;;
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
88 --system|-s)
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
89 SYSINST=1
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
90 shift 1
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
91 ;;
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
92 --force|-f)
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
93 FORCE=1
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
94 shift 1
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
95 ;;
1177
53a02fbe2fc9 (issue112) Rename deinstaller to uninstaller
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1173
diff changeset
96 --uninstall|-u)
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
97 DEINSTALL=1
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
98 shift 1
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
99 ;;
1066
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
100 --update)
1136
e82c440c2727 Add small comment about update option.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1134
diff changeset
101 # Update is an internal option that is used when the application calls
e82c440c2727 Add small comment about update option.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1134
diff changeset
102 # the installer to install an update.
1066
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
103 UPDATE=1
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
104 shift 1
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
105 ;;
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
106 --help)
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
107 usage 0
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
108 ;;
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
109 --version)
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
110 version
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
111 ;;
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
112 --)
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
113 shift
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
114 break
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
115 ;;
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
116 esac
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
117 done
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
118 }
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
119
1066
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
120 finished()
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
121 {
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
122 echo
1189
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
123 echo "################################################################################"
1066
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
124 if [ $SYSINST -eq 1 ]; then
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
125 getxt "System wide installation successful.\n"
1193
ec16e3d81278 Correctly print sudo or not sudo for the uninstaller runcommand
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1189
diff changeset
126 UN_RUNCMD="sudo "
1066
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
127 else
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
128 getxt "Single user installation successful.\n"
1193
ec16e3d81278 Correctly print sudo or not sudo for the uninstaller runcommand
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1189
diff changeset
129 UN_RUNCMD=""
1066
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
130 fi
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
131 getxt "TrustBridge has been installed to: '%s'\n\n" "${instcfg[PREFIX]}"
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
132
1112
d619507d9e9f linux-installer: (issue109) Text slightly improved.
Bernhard Reiter <bernhard@intevation.de>
parents: 1075
diff changeset
133 getxt "To remove the application and the root certificates it has inserted,\n"
1177
53a02fbe2fc9 (issue112) Rename deinstaller to uninstaller
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1173
diff changeset
134 getxt "call the uninstall command:\n"
1193
ec16e3d81278 Correctly print sudo or not sudo for the uninstaller runcommand
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1189
diff changeset
135 echo " $UN_RUNCMD ${instcfg[PREFIX]}/bin/trustbridge-uninstall.sh"
1075
7e1fd6d96714 (issue109) Feedback improved. Shell translation updated.
Bernhard Reiter <bernhard@intevation.de>
parents: 1069
diff changeset
136
1189
969970a83b6d Updated linux installer help text and translation.
Emanuel Schuetze <emanuel@intevation.de>
parents: 1177
diff changeset
137 echo "################################################################################"
1251
3b433a350092 (issue54) Disable start after installation when root.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1243
diff changeset
138 if ! [ $(id -u) -eq 0 ]; then
3b433a350092 (issue54) Disable start after installation when root.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1243
diff changeset
139 getxt "Press enter to launch '%s'\n" "${instcfg[PREFIX]}/bin/trustbridge"
3b433a350092 (issue54) Disable start after installation when root.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1243
diff changeset
140 getxt "or press Control-C to quit the installer.\n"
3b433a350092 (issue54) Disable start after installation when root.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1243
diff changeset
141 read
3b433a350092 (issue54) Disable start after installation when root.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1243
diff changeset
142 "${instcfg[PREFIX]}/bin/trustbridge" &
3b433a350092 (issue54) Disable start after installation when root.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1243
diff changeset
143 else
3b433a350092 (issue54) Disable start after installation when root.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1243
diff changeset
144 getxt "You can now launch '%s'\n" "${instcfg[PREFIX]}/bin/trustbridge"
1066
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
145 fi
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
146 }
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
147
873
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
148 cleanup()
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
149 {
935
e977f7a0e8fd Cleanup temporary stuff (like shar lockdir) always (even when interrupted) on exit.
Sascha Wilde <wilde@intevation.de>
parents: 916
diff changeset
150 getxt "Cleaning up temporary stuff ...\n"
1132
db43c9a62935 Fixed cleanup of temporary directories.
Sascha Wilde <wilde@intevation.de>
parents: 1112
diff changeset
151
db43c9a62935 Fixed cleanup of temporary directories.
Sascha Wilde <wilde@intevation.de>
parents: 1112
diff changeset
152 # remove temporary directories:
db43c9a62935 Fixed cleanup of temporary directories.
Sascha Wilde <wilde@intevation.de>
parents: 1112
diff changeset
153 local -a temp_dirs
1139
1c9001db6ea2 Split up linux installer in to be able to create a uninstaller (TODO).
Sascha Wilde <wilde@intevation.de>
parents: 1134
diff changeset
154 if [ "${lock_dir:-}" ]; then
1132
db43c9a62935 Fixed cleanup of temporary directories.
Sascha Wilde <wilde@intevation.de>
parents: 1112
diff changeset
155 # $lock_dir is generate by the shar
db43c9a62935 Fixed cleanup of temporary directories.
Sascha Wilde <wilde@intevation.de>
parents: 1112
diff changeset
156 temp_dirs+=("${instcfg[PREFIX]}/$lock_dir")
937
f6b52f60f643 Check if lock_dir is set before using it in an rm -rf
Andre Heinecke <andre.heinecke@intevation.de>
parents: 935
diff changeset
157 fi
1258
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
158 if [ "${TMPEXTRACT_DIR:-}" ]; then
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
159 temp_dirs+=("$TMPEXTRACT_DIR")
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
160 fi
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
161
1139
1c9001db6ea2 Split up linux installer in to be able to create a uninstaller (TODO).
Sascha Wilde <wilde@intevation.de>
parents: 1134
diff changeset
162 if [ "${lock_dir:-}" ]; then
1c9001db6ea2 Split up linux installer in to be able to create a uninstaller (TODO).
Sascha Wilde <wilde@intevation.de>
parents: 1134
diff changeset
163 temp_dirs+=("$extra_bin_path")
1c9001db6ea2 Split up linux installer in to be able to create a uninstaller (TODO).
Sascha Wilde <wilde@intevation.de>
parents: 1134
diff changeset
164 fi
1133
54a6fa9e44cf Deleted trailing white space.
Sascha Wilde <wilde@intevation.de>
parents: 1132
diff changeset
165
1139
1c9001db6ea2 Split up linux installer in to be able to create a uninstaller (TODO).
Sascha Wilde <wilde@intevation.de>
parents: 1134
diff changeset
166 for dir in "${temp_dirs[@]-}" ; do
935
e977f7a0e8fd Cleanup temporary stuff (like shar lockdir) always (even when interrupted) on exit.
Sascha Wilde <wilde@intevation.de>
parents: 916
diff changeset
167 [ -d "$dir" ] &&
e977f7a0e8fd Cleanup temporary stuff (like shar lockdir) always (even when interrupted) on exit.
Sascha Wilde <wilde@intevation.de>
parents: 916
diff changeset
168 rm -rf "$dir"
e977f7a0e8fd Cleanup temporary stuff (like shar lockdir) always (even when interrupted) on exit.
Sascha Wilde <wilde@intevation.de>
parents: 916
diff changeset
169 done
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
170 }
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
171
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
172 write_instcfg()
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
173 {
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
174 install -d `dirname "$instcfg_file"`
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
175 echo "# Created by TrustBridge-Installer, don't touch!" >"$instcfg_file"
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
176 for key in "${!instcfg[@]}" ; do
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
177 echo "${key}=${instcfg[$key]}" >>"$instcfg_file"
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
178 done
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
179 }
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
180
777
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
181 write_autostart()
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
182 {
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
183 cat > "$1" << EOF
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
184 [Desktop Entry]
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
185 Type=Application
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
186 Name=TrustBridge
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
187 Exec="${instcfg[PREFIX]}/bin/trustbridge" --tray
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
188 EOF
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
189 chown "${SUDO_USER:-${USER}}" "$1"
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
190 chmod 700 "$1"
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
191 }
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
192
872
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
193 write_startmenu()
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
194 {
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
195 cat > "$1" << EOF
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
196 [Desktop Entry]
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
197 Type=Application
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
198 Name=TrustBridge
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
199 Comment=Install and update trusted root certificates
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
200 Comment[de]=Vertrauenswürdige Wurzelzertifikate installieren und aktualisieren
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
201 Exec=${instcfg[PREFIX]}/bin/trustbridge
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
202 Icon=${instcfg[PREFIX]}/share/pixmaps/trustbridge/trustbridge.png
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
203 Terminal=false
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
204 Categories=Network;Qt;
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
205 StartupNotify=false
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
206 EOF
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
207 }
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
208
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
209 setup_startmenu()
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
210 {
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
211 # Supported desktop environments: Unity, GNOME, XFCE, LXDE, KDE
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
212 # System wide installation with a nonstandard XDG_DATA_HOME is not
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
213 # respected with regards to autostart.
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
214 if [ ! -d "${startmenu_path}" ]; then
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
215 install -d "${startmenu_path}" || \
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
216 fatal "Failed to create startmenu directory: '%s'\n" "$startmenu_path"
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
217 fi
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
218
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
219 write_startmenu "${startmenu_path}/trustbridge.desktop"
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
220 update-desktop-database 2>&1 || true
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
221 }
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
222
777
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
223 setup_autostart()
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
224 {
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
225 # Supported desktop environments: Unity, GNOME, XFCE, LXDE, KDE
785
2fb539d4b1ff Simply autostart creation by initializing the path in init_vars
Andre Heinecke <andre.heinecke@intevation.de>
parents: 777
diff changeset
226 # System wide installation with a nonstandard XDG_CONFIG_HOME or KDEHOME is not
2fb539d4b1ff Simply autostart creation by initializing the path in init_vars
Andre Heinecke <andre.heinecke@intevation.de>
parents: 777
diff changeset
227 # respected with regards to autostart.
2fb539d4b1ff Simply autostart creation by initializing the path in init_vars
Andre Heinecke <andre.heinecke@intevation.de>
parents: 777
diff changeset
228 if [ ! -d "${autostart_path}" ]; then
2fb539d4b1ff Simply autostart creation by initializing the path in init_vars
Andre Heinecke <andre.heinecke@intevation.de>
parents: 777
diff changeset
229 install -d "${autostart_path}" || \
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
230 fatal "Failed to create autostart directory: '%s'\n" "$autostart_path"
785
2fb539d4b1ff Simply autostart creation by initializing the path in init_vars
Andre Heinecke <andre.heinecke@intevation.de>
parents: 777
diff changeset
231 fi
777
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
232
854
adf7481291a4 Fixed typo in ubuntu desktop file.
Emanuel Schuetze <emanuel@intevation.de>
parents: 799
diff changeset
233 write_autostart "${autostart_path}/trustbridge.desktop"
777
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
234 }
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
235
873
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
236 provide_uudecode_maybe()
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
237 {
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
238 # The shar needs uudecode, which might not be installed. If its not
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
239 # available we will provide our own python based implementation.
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
240 if which uudecode >/dev/null 2>&1 ; then
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
241 getxt "Found system uudecode.\n"
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
242 else
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
243 local myuudecode="$extra_bin_path/uudecode"
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
244 cat >"$myuudecode" <<EOF
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
245 #!/usr/bin/python2
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
246 import os
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
247 import sys
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
248 import uu
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
249 os.path.chmod = os.chmod
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
250 def rm_if_exists(file):
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
251 try:
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
252 os.remove(file)
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
253 except OSError:
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
254 pass
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
255 os.path.exists = rm_if_exists
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
256 if len(sys.argv) > 1:
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
257 f = open(sys.argv[1], 'r')
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
258 else:
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
259 f = sys.stdin
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
260 uu.decode(f, None, None, 1)
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
261 EOF
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
262 chmod 755 "$myuudecode"
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
263 PATH="${extra_bin_path}:$PATH"
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
264 getxt "Using python uudecode provided by installer.\n"
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
265 fi
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
266 }
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
267
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
268 #======================================================================
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
269 # main()
935
e977f7a0e8fd Cleanup temporary stuff (like shar lockdir) always (even when interrupted) on exit.
Sascha Wilde <wilde@intevation.de>
parents: 916
diff changeset
270 trap cleanup EXIT
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
271
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
272 parse_args "$@"
1040
43734932e2ea (issue100) Fall back to system wide deinstallation when no local installation is found
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1038
diff changeset
273 check_priv
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
274 init_vars
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
275 read_oldinstcfg
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
276
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
277 cat <<EOF
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
278 ------------------------------------------------------------------------
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
279
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
280 TrustBridge - Installer
972
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
281 Version ${instcfg[VERSION]} - ${ARCH} (Testversion)
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
282
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
283 ------------------------------------------------------------------------
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
284 EOF
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
285
972
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
286 if [ "$ARCH" == "x86_64" -a "$ARCH" != "$HOST_ARCH" ]; then
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
287 getxt "It appears your system architecture is %s.\n" "$HOST_ARCH"
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
288 getxt "This installer is for 64 bit systems.\n"
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
289 getxt "Really install TrustBridge for '%s' systems? [y/n]\n" "${ARCH}"
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
290 yorn || exit 0
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
291 fi
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
292
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
293 if [ "$ARCH" == "i386" ]; then
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
294 if [[ "$HOST_ARCH" != *86 ]]; then
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
295 getxt "It appears your system architecture is %s.\n" "$HOST_ARCH"
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
296 getxt "This installer is for 32 bit systems.\n"
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
297 getxt "Really install TrustBridge for '%s' systems? [y/n]\n" "${ARCH}"
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
298 yorn || exit 0
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
299 fi
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
300 fi
8be2f510adbf (issue91) Make installer architecture aware.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 938
diff changeset
301
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
302 if [ $DEINSTALL -eq 1 ] ; then
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
303 deinstall
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
304 # Stop after deinstallation:
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
305 exit 0
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
306 fi
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
307
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
308 if [ -z "${instcfg[PREFIX]}" ] ; then
1194
292a25c34aff (issue110) Remove installation_prefix dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1193
diff changeset
309 instcfg[PREFIX]="${inst_default_prefix}"
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
310 else
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
311 # Prefix was given on invocation:
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
312 if [ "${oldinstcfg[PREFIX]}" -a \
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
313 "${instcfg[PREFIX]}" != "${oldinstcfg[PREFIX]}" -a \
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
314 $FORCE -ne 1 ] ; then
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
315 fatal "Prefix differs from current installation (%s). Aborting!\n" "${oldinstcfg[PREFIX]}"
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
316 fi
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
317 fi
682
578860edde53 Use default path.
Sascha Wilde <wilde@intevation.de>
parents: 680
diff changeset
318
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
319 getxt "Installing to '%s':\n" "${instcfg[PREFIX]}"
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
320
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
321 if [ ! -d "${instcfg[PREFIX]}" ] ; then
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
322 getxt "creating installation directory ...\n"
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
323 install -d "${instcfg[PREFIX]}" || fatal "Could not create '%s'!\n" "${instcfg[PREFIX]}"
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
324 fi
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
325
873
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
326 getxt "checking for uudecode ...\n"
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
327 provide_uudecode_maybe
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
328
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
329 getxt "unpacking files ...\n"
1161
b67681a61e3e Fixed installation with relative destination path.
Sascha Wilde <wilde@intevation.de>
parents: 1152
diff changeset
330 OLDWD="$PWD"
1258
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
331
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
332 if [ $UPDATE -eq 1 ]; then
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
333 # Trustbridge might be running. Install into temporary dir
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
334 # and move the directory into the installation prefix afterwards
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
335 TMPEXTRACT_DIR=$(mktemp -d)
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
336 cd "$TMPEXTRACT_DIR"
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
337 else
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
338 cd "${instcfg[PREFIX]}"
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
339 fi
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
340
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
341 set +u
753
7c1f34115ede Force the shar to overwrite existing files.
Sascha Wilde <wilde@intevation.de>
parents: 752
diff changeset
342 set -- '-c'
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
343 # ----------------------------------------------------------------------
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
344 # regular shar archive inserted here:
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
345 ###SHAR###
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
346 # ----------------------------------------------------------------------
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
347
1258
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
348 if [ $UPDATE -eq 1 ]; then
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
349 cp -fr "$TMPEXTRACT_DIR/bin" "${instcfg[PREFIX]}"
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
350 cp -fr "$TMPEXTRACT_DIR/share" "${instcfg[PREFIX]}"
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
351 fi
469c1a04b678 (issue54) On update copy and remove the updated files instead of extracting
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1257
diff changeset
352
1161
b67681a61e3e Fixed installation with relative destination path.
Sascha Wilde <wilde@intevation.de>
parents: 1152
diff changeset
353 cd "$OLDWD"
b67681a61e3e Fixed installation with relative destination path.
Sascha Wilde <wilde@intevation.de>
parents: 1152
diff changeset
354
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
355 getxt "Preparing trustbridge-tray-starter ...\n"
738
ea8d13590cbd Added trustbridge-tray-starter script for use with cron job.
Sascha Wilde <wilde@intevation.de>
parents: 730
diff changeset
356 sed -i "/^PREFIX=/c\PREFIX='${instcfg[PREFIX]}'" \
ea8d13590cbd Added trustbridge-tray-starter script for use with cron job.
Sascha Wilde <wilde@intevation.de>
parents: 730
diff changeset
357 "${instcfg[PREFIX]}/bin/trustbridge-tray-starter.sh"
ea8d13590cbd Added trustbridge-tray-starter script for use with cron job.
Sascha Wilde <wilde@intevation.de>
parents: 730
diff changeset
358
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
359 getxt "Setting up cronjob ...\n"
749
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
360 setup_cronjob
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
361
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
362 getxt "Setting up autostart ...\n"
777
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
363 setup_autostart
ca149bad8195 (issue51) Set up autostart on installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 776
diff changeset
364
872
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
365 getxt "Setting up start menu entries ...\n"
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
366 setup_startmenu
02e357826417 (issue81) Add desktop file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 863
diff changeset
367
795
3a9b0c75f5a6 Added i18n code and german l10n to linux installer.
Sascha Wilde <wilde@intevation.de>
parents: 785
diff changeset
368 getxt "Writing installation configuration to: %s ...\n" "$instcfg_file"
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
369 write_instcfg
873
78096ad6f418 Provide own, python based uudecode if none is found in the system.
Sascha Wilde <wilde@intevation.de>
parents: 872
diff changeset
370
1066
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
371 finished
febd195c0301 (issue109) Add summary after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1049
diff changeset
372
935
e977f7a0e8fd Cleanup temporary stuff (like shar lockdir) always (even when interrupted) on exit.
Sascha Wilde <wilde@intevation.de>
parents: 916
diff changeset
373 # cleanup
e977f7a0e8fd Cleanup temporary stuff (like shar lockdir) always (even when interrupted) on exit.
Sascha Wilde <wilde@intevation.de>
parents: 916
diff changeset
374 # is called implicitly at exit via trap...
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
375 exit 0

http://wald.intevation.org/projects/trustbridge/