annotate packaging/linux-installer.inc.in @ 754:27043d74dc90

(Issue25) Align header contents in their own column. We now also stretch column 3 so that the contents are aligned with the descriptive labels without a space in between. Sadly this causes the quit button to be resized to it's minimum instead of sharing the space with the installation button as the installation button is so large that it squeezes the push button.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 07 Jul 2014 12:38:33 +0200
parents 7c1f34115ede
children 654a8ca9d5b4
rev   line source
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
1 #!/bin/bash
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
2 set -u
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
3
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
4 ME=`basename "$0"`
704
480bc550d2ad Better default prefix for local installation.
Sascha Wilde <wilde@intevation.de>
parents: 700
diff changeset
5 DEFAULT_PREFIX="$HOME/TrustBridge"
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
6 SYSDEFAULT_PREFIX="/usr/local"
724
d280e2d39d5a Introduced data-directory and fixed config-directory.
Sascha Wilde <wilde@intevation.de>
parents: 723
diff changeset
7 CFGPATH="${XDG_CONFIG_HOME:-$HOME/.config}/BSI"
d280e2d39d5a Introduced data-directory and fixed config-directory.
Sascha Wilde <wilde@intevation.de>
parents: 723
diff changeset
8 DATAPATH="${XDG_DATA_HOME:-$HOME/.local/share}/BSI/TrustBridge"
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
9 SYSCFGPATH="/etc/TrustBridge"
727
feaabee15e72 Preliminary implemented SYSDATAPATH.
Sascha Wilde <wilde@intevation.de>
parents: 725
diff changeset
10 # FIXME:
feaabee15e72 Preliminary implemented SYSDATAPATH.
Sascha Wilde <wilde@intevation.de>
parents: 725
diff changeset
11 # Set the real data path for system wide installation once its known.
feaabee15e72 Preliminary implemented SYSDATAPATH.
Sascha Wilde <wilde@intevation.de>
parents: 725
diff changeset
12 SYSDATAPATH="$DATAPATH"
724
d280e2d39d5a Introduced data-directory and fixed config-directory.
Sascha Wilde <wilde@intevation.de>
parents: 723
diff changeset
13 INSTCFGNAME="TrustBridge-inst.cfg"
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
14 FORCE=0
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
15 SYSINST=0
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
16 DEINSTALL=0
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
17 BINNAMES="###BINNAMES###"
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
18
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
19 declare -A instcfg oldinstcfg
724
d280e2d39d5a Introduced data-directory and fixed config-directory.
Sascha Wilde <wilde@intevation.de>
parents: 723
diff changeset
20 declare inst_default_prefix instdata_path instcfg_path instcfg_file
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
21 instcfg=(
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
22 [TIMESTMP]=`date -u +%Y%m%d%H%M%S`
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
23 [VERSION]='@PROJECT_VERSION@'
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
24 [PREFIX]=''
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
25 )
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
26 oldinstcfg=(
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
27 [TIMESTMP]=''
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
28 [VERSION]=''
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
29 [PREFIX]=''
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
30 )
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
31
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
32 version()
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
33 {
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
34 cat <<EOF
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
35 TrustBridge ${instcfg[VERSION]} Installer
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
36
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
37 Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
38 Software engineering by Intevation GmbH
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
39
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
40 This is free software. You may redistribute copies of it under the terms of
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
41 the GNU GPL (v>=2). See LICENSE.txt for details.
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
42 There is NO WARRANTY, to the extent permitted by law.
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
43 EOF
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
44 exit 0
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
45 }
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
46
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
47 fatal()
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
48 {
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
49 echo "$1" >&2
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
50 if [ $DEINSTALL -eq 1 ] ; then
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
51 echo "Deinstallation failed." >&2
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
52 else
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
53 echo "Installation failed." >&2
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
54 fi
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
55 exit 1
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
56 }
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 {
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
60 cat <<EOF
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
61 Usage: $ME [OPTION]...
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
62 Install TrustBridge.
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
63
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
64 Options:
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
65 -p, --prefix=PATH install files in PATH
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
66 -f, --force install to given prefix, even when a current
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
67 installation with different prefix exists.
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
68 -d, --deinstall deinstall files from current installation
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
69 -s, --system=PATH make an system wide (de)installation
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
70 --help display this help and exit
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
71 --version output version information and exit
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
72 EOF
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
73 exit $1
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
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
76 yorn()
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
77 {
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
78 local c
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
79 while true ; do
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
80 read -n 1 c
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
81 echo
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
82 case "$c" in
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
83 y|Y|j|J)
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
84 return 0
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
85 ;;
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
86 n|N)
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
87 return 1
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
88 ;;
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
89 *)
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
90 echo >&2 "Answer [Y]es or [N]o: "
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
91 esac
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
92 done
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
93 }
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
94
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
95 parse_args()
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
96 {
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
97 OPTS=`getopt \
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
98 -l deinstall,force,help,prefix:,system,version \
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
99 -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
100 [ $? -eq 0 ] || usage 23
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
101
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
102 eval set -- "$OPTS"
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
103
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
104 while true ; do
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
105 case "$1" in
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
106 --prefix|-p)
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
107 instcfg[PREFIX]="$2"
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
108 shift 2
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
109 ;;
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
110 --system|-s)
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
111 SYSINST=1
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
112 shift 1
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
113 ;;
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
114 --force|-f)
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
115 FORCE=1
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
116 shift 1
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
117 ;;
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
118 --deinstall|-d)
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
119 DEINSTALL=1
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
120 shift 1
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
121 ;;
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
122 --help)
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
123 usage 0
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
124 ;;
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
125 --version)
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
126 version
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
127 ;;
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
128 --)
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
129 shift
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
130 break
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
131 ;;
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
132 esac
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
133 done
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
134 }
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
135
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
136 init_vars()
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
137 {
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
138 if [ $SYSINST -eq 1 ] ; then
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
139 inst_default_prefix="$SYSDEFAULT_PREFIX"
723
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
140 instcfg_path="${SYSCFGPATH}"
727
feaabee15e72 Preliminary implemented SYSDATAPATH.
Sascha Wilde <wilde@intevation.de>
parents: 725
diff changeset
141 instdata_path="${SYSDATAPATH}"
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
142 else
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
143 inst_default_prefix="$DEFAULT_PREFIX"
723
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
144 instcfg_path="${CFGPATH}"
724
d280e2d39d5a Introduced data-directory and fixed config-directory.
Sascha Wilde <wilde@intevation.de>
parents: 723
diff changeset
145 instdata_path="${DATAPATH}"
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
146 fi
723
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
147 instcfg_file="${instcfg_path}/${INSTCFGNAME}"
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
148 }
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
149
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
150 write_instcfg()
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
151 {
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
152 install -d `dirname "$instcfg_file"`
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
153 echo "# Created by TrustBridge-Installer, don't touch!" >"$instcfg_file"
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
154 for key in "${!instcfg[@]}" ; do
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
155 echo "${key}=${instcfg[$key]}" >>"$instcfg_file"
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
156 done
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
157 }
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
158
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
159 read_oldinstcfg()
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
160 {
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
161 if [ -r "$instcfg_file" ] ; then
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
162 echo "Reading '$instcfg_file' ..."
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
163 for key in "${!oldinstcfg[@]}" ; do
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
164 oldinstcfg[$key]=`sed -n "/$key/s/[^=]*=\(.*\)/\1/p" "$instcfg_file"`
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
165 done
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
166 fi
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
167 }
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
168
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
169 check_priv()
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 if [ $SYSINST -eq 1 -a "$UID" -ne 0 ] ; then
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
172 fatal "System wide installation requires root privileges!"
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
173 fi
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
174 }
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
175
728
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
176 rm_empty_dirs()
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
177 {
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
178 # Args: $1 - DIRECTORY
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
179 #
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
180 # Recursively remove DIRECTORY and all it _parent_ directories as
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
181 # long as they are empty.
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
182 local directory="$1"
752
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
183 while [ -d "$directory" -a -z "$(ls 2>/dev/null -A "$directory")" ] ; do
728
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
184 echo "Deleting empty directory '$directory' ..."
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
185 rmdir "$directory"
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
186 directory=`dirname "$directory"`
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
187 done
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
188 }
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
189
752
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
190 rm_files()
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
191 {
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
192 for file in "$@" ; do
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
193 if [ -e "$file" ] ; then
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
194 echo "Deleting $file ..."
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
195 rm "$file"
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
196 fi
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
197 done
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
198 }
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
199
749
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
200 setup_cronjob()
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
201 {
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
202 # FIXME: handle case of system wide installation.
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
203 local tmpcrontab=`mktemp`
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
204 crontab -l | grep -vF "${instcfg[PREFIX]}/bin/trustbridge-tray-starter.sh" \
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
205 >"$tmpcrontab"
750
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
206 if [ "$1" != "deinstall" ] ; then
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
207 echo "$(( $RANDOM / 555 )) 12 * * * \"${instcfg[PREFIX]}/bin/trustbridge-tray-starter.sh\"" \
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
208 >>"$tmpcrontab"
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
209 fi
749
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
210 crontab "$tmpcrontab"
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
211 rm "$tmpcrontab"
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
212 }
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
213
750
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
214 remove_cronjob()
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
215 {
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
216 setup_cronjob deinstall
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
217 }
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
218
723
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
219 deinstall_certs()
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
220 {
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
221 local cinst="${oldinstcfg[PREFIX]}/bin/cinst"
752
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
222 local certlist=`ls 2>/dev/null -1 ${instdata_path}/list-*.txt | sort -nr | head -n 1`
723
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
223
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
224 echo "Uninstalling certificates ..."
728
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
225
723
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
226 if [ "$certlist" ] ; then
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
227 echo "Using certificate list '$certlist'."
725
ce3e33e66a17 Fixed cert deinstallation for prefix-paths containing space.
Sascha Wilde <wilde@intevation.de>
parents: 724
diff changeset
228 if [ -x "$cinst" ] ; then
723
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
229 "$cinst" "list=$certlist" "choices=uninstall"
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
230 else
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
231 echo >&2 "WARNING: can't execute $cinst for certificate deinstallation."
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
232 fi
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
233 else
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
234 echo "No certificate list found. Nothing to do."
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
235 fi
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
236 }
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
237
729
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
238 deinstall_etc()
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
239 {
750
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
240 echo "Removing cron job ..."
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
241 remove_cronjob
27dd0012288a Remove cron job on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 749
diff changeset
242
729
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
243 # FIXME: delete all files created by the application.
751
d8c8e14b9953 Remove trustbridge-tray-starter configuration on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 750
diff changeset
244 local tbcfg_files=( "${instcfg_path}/TrustBridge.ini"
d8c8e14b9953 Remove trustbridge-tray-starter configuration on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 750
diff changeset
245 "${instcfg_path}/trustbridge-tray-starter.cfg"
d8c8e14b9953 Remove trustbridge-tray-starter configuration on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 750
diff changeset
246 "$instcfg_file" )
752
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
247
729
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
248 echo "Removing certificate lists from: ${instdata_path}:"
752
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
249 rm_files "$instdata_path"/list-*.txt
729
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
250 rm_empty_dirs "$instdata_path"
751
d8c8e14b9953 Remove trustbridge-tray-starter configuration on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 750
diff changeset
251
d8c8e14b9953 Remove trustbridge-tray-starter configuration on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 750
diff changeset
252 echo "Removing configuration files:"
752
96cac71834ba Fixed errors when not all expected files exist on deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 751
diff changeset
253 rm_files "${tbcfg_files[@]}"
729
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
254 rm_empty_dirs "$instcfg_path"
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
255 }
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
256
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
257 deinstall()
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
258 {
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
259 if [ "${oldinstcfg[PREFIX]}" ] ; then
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
260 echo "Really deinstall TrustBridge from '${oldinstcfg[PREFIX]}'?"
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
261 yorn || exit 0
723
e71c59b16eee Added certificate deinstallation.
Sascha Wilde <wilde@intevation.de>
parents: 711
diff changeset
262 deinstall_certs
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
263 local deinstdir="${oldinstcfg[PREFIX]}/bin"
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
264 echo "Deinstalling from '${oldinstcfg[PREFIX]}'."
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
265 for file in $BINNAMES ; do
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
266 local path="${deinstdir}/$file"
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
267 echo "Deleting '$path' ..."
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
268 rm "$path" || echo >&2 "WARNING: Could not delete: '$path'!"
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
269 done
728
2d64ff7e22e8 Factored out recursive deletion of empty dirs.
Sascha Wilde <wilde@intevation.de>
parents: 727
diff changeset
270 rm_empty_dirs "$deinstdir"
729
efc2d16ab514 Remove (more) data files and directories.
Sascha Wilde <wilde@intevation.de>
parents: 728
diff changeset
271 deinstall_etc
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
272 echo "Deinstallation finished."
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
273 else
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
274 echo "No current installation found! No harm done."
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
275 fi
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
276 }
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
277
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
278
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
279 #======================================================================
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
280 # main()
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
281
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
282 parse_args "$@"
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
283 init_vars
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
284 check_priv
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
285 read_oldinstcfg
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
286
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
287 cat <<EOF
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
288 ------------------------------------------------------------------------
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
289
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
290 TrustBridge - Installer
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
291 Version ${instcfg[VERSION]}
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
292
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
293 ------------------------------------------------------------------------
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
294 EOF
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
295
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
296 if [ $DEINSTALL -eq 1 ] ; then
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
297 deinstall
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
298 # Stop after deinstallation:
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
299 exit 0
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
300 fi
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
301
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
302 if [ -z "${instcfg[PREFIX]}" ] ; then
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
303
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
304 if [ "${oldinstcfg[PREFIX]}" ] ; then
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
305 inst_default_prefix="${oldinstcfg[PREFIX]}"
705
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
306 echo "An existing installation (v${oldinstcfg[VERSION]}) was detected!"
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
307 echo "It is HIGHLY RECOMMENDED to accept the default prefix"
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
308 echo "to update the current installation."
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
309 echo "For a new prefix you should deinstall first!"
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
310 fi
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
311 echo -n "Select installation prefix for TrustBridge [${inst_default_prefix}]: "
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
312 read -e instcfg[PREFIX]
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
313
707
37899f717fa5 Added system wide installation.
Sascha Wilde <wilde@intevation.de>
parents: 705
diff changeset
314 [ -z "${instcfg[PREFIX]}" ] && 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
315 else
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
316 # Prefix was given on invocation:
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
317 if [ "${oldinstcfg[PREFIX]}" -a \
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
318 "${instcfg[PREFIX]}" != "${oldinstcfg[PREFIX]}" -a \
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
319 $FORCE -ne 1 ] ; then
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
320 fatal "Prefix differs from current installation (${oldinstcfg[PREFIX]}). Aborting!"
ff2efc1cb8fa Use config from old installation for sensible default prefix.
Sascha Wilde <wilde@intevation.de>
parents: 704
diff changeset
321 fi
698
b55d49150e36 Added command line args for unattended installation.
Sascha Wilde <wilde@intevation.de>
parents: 682
diff changeset
322 fi
682
578860edde53 Use default path.
Sascha Wilde <wilde@intevation.de>
parents: 680
diff changeset
323
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
324 echo "Installing to '${instcfg[PREFIX]}':"
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
325
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
326 if [ ! -d "${instcfg[PREFIX]}" ] ; then
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
327 echo "creating installation directory ..."
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
328 install -d "${instcfg[PREFIX]}" || fatal "Could not create '${instcfg[PREFIX]}'!"
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
329 fi
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
330
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
331 echo "unpacking files ..."
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
332 cd "${instcfg[PREFIX]}"
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
333
711
acbe75423283 Added deinstallation functionality.
Sascha Wilde <wilde@intevation.de>
parents: 707
diff changeset
334 set +u
753
7c1f34115ede Force the shar to overwrite existing files.
Sascha Wilde <wilde@intevation.de>
parents: 752
diff changeset
335 set -- '-c'
680
a5a709c6ce93 Added minimal shar based installer for linux.
Sascha Wilde <wilde@intevation.de>
parents:
diff changeset
336 # ----------------------------------------------------------------------
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
337 # regular shar archive inserted here:
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
338 ###SHAR###
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
339 # ----------------------------------------------------------------------
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
340
738
ea8d13590cbd Added trustbridge-tray-starter script for use with cron job.
Sascha Wilde <wilde@intevation.de>
parents: 730
diff changeset
341 echo "Preparing trustbridge-tray-starter ..."
ea8d13590cbd Added trustbridge-tray-starter script for use with cron job.
Sascha Wilde <wilde@intevation.de>
parents: 730
diff changeset
342 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
343 "${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
344 sed -i "/^CFGDIR=/c\CFGDIR='${instcfg_path}'" \
ea8d13590cbd Added trustbridge-tray-starter script for use with cron job.
Sascha Wilde <wilde@intevation.de>
parents: 730
diff changeset
345 "${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
346
749
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
347 echo "Setting up cronjob ..."
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
348 setup_cronjob
778382342802 Added installation of cron job.
Sascha Wilde <wilde@intevation.de>
parents: 738
diff changeset
349
700
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
350 echo "Writing installation configuration to: $instcfg_file ..."
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
351 write_instcfg
bf87feccb26c Write installation configuration file.
Sascha Wilde <wilde@intevation.de>
parents: 698
diff changeset
352 exit 0

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