Fester Wert durch Variable ersetzt
[kivitendo-erp.git] / DEBIAN / DEBIAN / postinst
1 #!/bin/bash
2 # postinst script for lx-office-erp-svn
3 #
4 # see: dh_installdeb(1)
5
6 # e = exit on error
7 set -e
8 # x = xtrace
9 #set -x
10 echo " ! "`date`" Postinst $1 !" >> /tmp/lxo-erp.log
11
12 source /usr/share/debconf/confmodule
13
14 # summary of how this script can be called:
15 #        * <postinst> `configure' <most-recently-configured-version>
16 #        * <old-postinst> `abort-upgrade' <new version>
17 #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
18 #          <new-version>
19 #        * <postinst> `abort-remove'
20 #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
21 #          <failed-install-package> <version> `removing'
22 #          <conflicting-package> <version>
23 # for details, see http://www.debian.org/doc/debian-policy/ or
24 # the debian-policy package
25
26
27 config_postgresql_factory_script() {
28
29         echo "Starting factory postgresql config script: scripts/inst_postgres_deb.sh.."
30         cd /usr/lib/lx-office-erp/
31         ./scripts/inst_postgres_deb.sh
32         echo "Factory postgresql config script done."
33 }
34
35
36 config_postgresql_accounts_sec() {
37
38         POSTGRESQL_PG_HBA_CONF="/etc/postgresql/8.3/main/pg_hba.conf"
39
40         echo "# added by lx-office-erp postinst-script" >> $POSTGRESQL_PG_HBA_CONF
41         echo "host            all lx_office_erp 127.0.0.1 255.255.255.0 password" >> $POSTGRESQL_PG_HBA_CONF
42
43         /etc/init.d/postgresql* reload
44 }
45
46
47 config_postgresql_roles() {
48
49         echo "CREATE USER lx_office_erp with CREATEDB ;" > /tmp/lxdb-install.sql
50
51         db_get lx-office-erp/lx-office-erp-user-postgresql-password
52         POSTGRES_LX_OFFICE_ERP_USER_PASSWORD="$RET"
53
54         echo "ALTER USER lx_office_erp PASSWORD '$POSTGRES_LX_OFFICE_ERP_USER_PASSWORD' ;" \
55          >> /tmp/lxdb-install.sql
56
57         echo "UPDATE pg_language SET lanpltrusted = true WHERE lanname = 'plpgsql';" >> /tmp/lxdb-instal.sql
58
59         su postgres -c "psql --dbname template1 < /tmp/lxdb-install.sql"
60
61         /etc/init.d/postgresql* reload
62 }
63
64
65
66 config_postgresql_sql_routines() {
67
68         PLPGSQL="/usr/lib/postgresql/8.3/lib/plpgsql.so"
69         echo "CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler" > /tmp/lxdb-install.sql
70         echo "AS '$PLPGSQL', 'plpgsql_call_handler'" >> /tmp/lxdb-install.sql
71         echo "LANGUAGE c;" >> /tmp/lxdb-install.sql
72         echo "CREATE PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler;" >> /tmp/lxdb-install.sql
73         su postgres -c "psql --dbname template1 < /tmp/lxdb-install.sql"
74
75         /etc/init.d/postgresql-8.3 reload
76 }
77
78
79 set_lx_office_erp_web_admin_password() {
80
81         db_get lx-office-erp/admin-password
82         ADMINPASSWORD="$RET"
83
84         cat /etc/lx-office-erp/authentication.pl.default | \
85         sed --expression "s/\$self->{admin_password} = 'admin';/\$self->{admin_password} = '$ADMINPASSWORD';/g" \
86         > /tmp/1.txt
87
88         mv /tmp/1.txt /etc/lx-office-erp/authentication.pl
89
90 }
91
92
93 set_lx_office_erp_authentication_db_password() {
94         db_get lx-office-erp/lx-office-erp-user-postgresql-password
95         PASSWORD="$RET"
96
97         cat /etc/lx-office-erp/authentication.pl | \
98         sed --expression "s/'password' => '',/'password' => '$PASSWORD',/g" \
99         > /tmp/1.txt
100
101         mv /tmp/1.txt /etc/lx-office-erp/authentication.pl
102
103 }
104
105 set_lx_office_erp_authentication_db_user() {
106         USER="lxoffice"
107
108         cat /etc/lx-office-erp/authentication.pl | \
109         sed --expression "s/'user'     => 'postgres',/'user'     => '$USER',/g" \
110         > /tmp/1.txt
111
112         mv /tmp/1.txt /etc/lx-office-erp/authentication.pl
113 }
114
115 set_user_rights() {
116         chown -R www-data:www-data /usr/lib/lx-office-erp/users
117         chown -R www-data:www-data /usr/lib/lx-office-erp/templates
118         chown www-data:www-data /etc/lx-office-erp/lx-erp.conf
119         chown www-data:www-data /usr/lib/lx-office-erp/menu.ini
120         chown www-data:www-data /etc/lx-office-erp/authentication.pl
121         chmod 0600 /etc/lx-office-erp/lx-erp.conf
122         chmod 0600 /etc/lx-office-erp/authentication.pl
123 }
124
125 disable_ipv6_on_lo_interface() {
126         # 2009-04-25
127         # Perls Libraries are not yet ipv6 read
128         echo "WICHTIG: ipv6 ist nunmehr auf dem Loopback-Interface deaktiviert, um die Funktionsfähigkeit von Lx-Office-ERP zu gewährleisten!"
129         ifconfig lo inet6 del ::1/128 2> /dev/null || true
130
131         # make the changes permanent (triggered on next reboot)
132         RCLOCAL="/etc/rc.local"
133         echo "# lx-office-erp: Perl libraries are not yet fully ipv6-ready" >> $RCLOCAL
134         echo "ifconfig lo inet6 del ::1/128" >> $RCLOCAL
135
136 }
137 mk_new_menu() {
138     if [ -e /usr/lib/lx-office-crm ] ; then 
139         #crm vorhanden, dann die menu.ini mit der höchsten VersNr nehmen
140         for i in `ls -1 /usr/lib/lx-office-crm/update/menu*ini` ; do 
141             cat $i > /usr/lib/lx-office-erp/menu.ini
142         done;
143         cat /usr/lib/lx-office-erp/menu.default >> /usr/lib/lx-office-erp/menu.ini
144     else
145         cp /usr/lib/lx-office-erp/menu.default /usr/lib/lx-office-erp/menu.ini
146     fi
147 }  
148
149 mk_new_config() {
150     if ! [ -f /etc/lx-office-erp/lx-erp.conf ] ; then
151         cp /etc/lx-office-erp/lx-erp.conf.default /etc/lx-office-erp/lx-erp.conf
152     fi
153     if ! [ -f /etc/lx-office-erp/console.conf ] ; then
154         cp /etc/lx-office-erp/console.conf.default /etc/lx-office-erp/console.conf
155     fi
156 }  
157
158 mk_links() {
159     if ! [ -f /usr/lib/lx-office-erp/config/authentication.pl ] ; then
160         ln -s /etc/lx-office-erp/authentication.pl /usr/lib/lx-office-erp/config/authentication.pl
161     fi;
162     if ! [ -f /usr/lib/lx-office-erp/config/lx-erp.conf ] ; then
163         ln -s /etc/lx-office-erp/lx-erp.conf /usr/lib/lx-office-erp/config/lx-erp.conf
164     fi;
165     if ! [ -f /usr/lib/lx-office-erp/config/console.conf ] ; then
166         ln -s /etc/lx-office-erp/console.conf /usr/lib/lx-office-erp/config/console.conf
167     fi;
168     if [ -e /etc/apache2 ] ; then 
169         if ! [ -f /etc/apache2/conf.d/lx-office-erp.apache2.conf ] ; then
170             ln -s /etc/lx-office-erp/lx-office-erp.apache2.conf /etc/apache2/conf.d/lx-office-erp.apache2.conf
171         fi;
172     fi;
173     if [ -e /etc/cherokee/sites-available ] ; then 
174         if ! [ -f /etc/cherokee/sites-available/lx-office-erp.cherokee ] ; then
175             cat /etc/lx-office-erp/lx-office-erp.cherokee.handler >> /etc/cherokee/sites-available/default
176             ln -s /etc/lx-office-erp/lx-office-erp.cherokee /etc/cherokee/sites-available/lx-office-erp.cherokee
177         fi;
178     fi;
179     if [ -e /etc/lighttpd ] ; then 
180         if ! [ -f /etc/lighttpd/conf-enabled/lx-office-erp.lighttpd ] ; then
181             ln -s /etc/lx-office-erp/lx-office-erp.lighttpd /etc/lighttpf/conf-enabled/10-lx-office-erp
182         fi;
183     fi;
184 }
185 reload_web_server() {
186     if [ -f /etc/init.d/apache* ] ; then 
187             /etc/init.d/apache* reload
188     fi
189     if [ -f /etc/init.d/cherokee ] ; then 
190             /etc/init.d/cherokee reload
191     fi
192     if [ -f /etc/init.d/lighttpd ] ; then 
193             /etc/init.d/lighttpd reload
194     fi
195 }
196 case "$1" in
197
198     upgrade)
199         echo " ! "`date`" $1 !" >> /tmp/lxo-erp.log
200
201         VER=`cat /var/www/lx-office-erp/VERSION | cut -d '.' -f2`
202         if [ $VER = '6' ]; then
203             echo " ! 2.6 !" >> /tmp/lxo-erp.log
204             echo "Version 2.6"
205             mk_new_menu
206         else
207             mk_new_menu
208             mk_new_config
209             config_postgresql_factory_script
210             set_lx_office_erp_web_admin_password
211             set_lx_office_erp_authentication_db_user
212             set_lx_office_erp_authentication_db_password
213                 disable_ipv6_on_lo_interface
214             mk_links
215         fi;
216
217         set_user_rights
218         reload_web_server
219     ;;
220
221     install|configure)
222         echo " ! "`date`" $1 !" >> /tmp/lxo-erp.log
223         
224         mk_new_menu
225         mk_new_config
226         config_postgresql_factory_script
227         set_lx_office_erp_web_admin_password
228         set_lx_office_erp_authentication_db_user
229         set_lx_office_erp_authentication_db_password
230         disable_ipv6_on_lo_interface
231         mk_links
232
233         set_user_rights
234         reload_web_server
235
236     ;;
237
238     abort-upgrade|abort-remove|abort-deconfigure)
239     ;;
240
241     *)
242         echo "postinst called with unknown argument \`$1'" >&2
243         exit 1
244     ;;
245 esac
246
247 # dh_installdeb will replace this with shell code automatically
248 # generated by other debhelper scripts.
249
250
251 echo "done!!"
252
253 exit 0