#!/bin/bash # postinst script for lx-office-erp-svn # # see: dh_installdeb(1) # e = exit on error set -e # x = xtrace #set -x echo " ! "`date`" Postinst $1 !" >> /tmp/lxo-erp.log source /usr/share/debconf/confmodule # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package config_postgresql_factory_script() { echo "Starting factory postgresql config script: scripts/inst_postgres_deb.sh.." cd /usr/lib/lx-office-erp/ ./scripts/inst_postgres_deb.sh echo "Factory postgresql config script done." } config_postgresql_accounts_sec() { POSTGRESQL_PG_HBA_CONF="/etc/postgresql/8.3/main/pg_hba.conf" echo "# added by lx-office-erp postinst-script" >> $POSTGRESQL_PG_HBA_CONF echo "host all lx_office_erp 127.0.0.1 255.255.255.0 password" >> $POSTGRESQL_PG_HBA_CONF /etc/init.d/postgresql* reload } config_postgresql_roles() { echo "CREATE USER lx_office_erp with CREATEDB ;" > /tmp/lxdb-install.sql db_get lx-office-erp/lx-office-erp-user-postgresql-password POSTGRES_LX_OFFICE_ERP_USER_PASSWORD="$RET" echo "ALTER USER lx_office_erp PASSWORD '$POSTGRES_LX_OFFICE_ERP_USER_PASSWORD' ;" \ >> /tmp/lxdb-install.sql echo "UPDATE pg_language SET lanpltrusted = true WHERE lanname = 'plpgsql';" >> /tmp/lxdb-instal.sql su postgres -c "psql --dbname template1 < /tmp/lxdb-install.sql" /etc/init.d/postgresql* reload } config_postgresql_sql_routines() { PLPGSQL="/usr/lib/postgresql/8.3/lib/plpgsql.so" echo "CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler" > /tmp/lxdb-install.sql echo "AS '$PLPGSQL', 'plpgsql_call_handler'" >> /tmp/lxdb-install.sql echo "LANGUAGE c;" >> /tmp/lxdb-install.sql echo "CREATE PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler;" >> /tmp/lxdb-install.sql su postgres -c "psql --dbname template1 < /tmp/lxdb-install.sql" /etc/init.d/postgresql-8.3 reload } set_lx_office_erp_web_admin_password() { db_get lx-office-erp/admin-password ADMINPASSWORD="$RET" cat /etc/lx-office-erp/authentication.pl.default | \ sed --expression "s/\$self->{admin_password} = 'admin';/\$self->{admin_password} = '$ADMINPASSWORD';/g" \ > /tmp/1.txt mv /tmp/1.txt /etc/lx-office-erp/authentication.pl } set_lx_office_erp_authentication_db_password() { db_get lx-office-erp/lx-office-erp-user-postgresql-password PASSWORD="$RET" cat /etc/lx-office-erp/authentication.pl | \ sed --expression "s/'password' => '',/'password' => '$PASSWORD',/g" \ > /tmp/1.txt mv /tmp/1.txt /etc/lx-office-erp/authentication.pl } set_lx_office_erp_authentication_db_user() { USER="lxoffice" cat /etc/lx-office-erp/authentication.pl | \ sed --expression "s/'user' => 'postgres',/'user' => '$USER',/g" \ > /tmp/1.txt mv /tmp/1.txt /etc/lx-office-erp/authentication.pl } set_user_rights() { chown -R www-data:www-data /usr/lib/lx-office-erp/users chown -R www-data:www-data /usr/lib/lx-office-erp/templates chown www-data:www-data /etc/lx-office-erp/lx-erp.conf chown www-data:www-data /usr/lib/lx-office-erp/menu.ini chown www-data:www-data /etc/lx-office-erp/authentication.pl chmod 0600 /etc/lx-office-erp/lx-erp.conf chmod 0600 /etc/lx-office-erp/authentication.pl } disable_ipv6_on_lo_interface() { #Ist wohl nicht mehr notwendig. # 2009-04-25 # Perls Libraries are not yet ipv6 read echo "WICHTIG: ipv6 ist nunmehr auf dem Loopback-Interface deaktiviert, um die Funktionsfähigkeit von Lx-Office-ERP zu gewährleisten!" ifconfig lo inet6 del ::1/128 2> /dev/null || true # make the changes permanent (triggered on next reboot) RCLOCAL="/etc/rc.local" echo "# lx-office-erp: Perl libraries are not yet fully ipv6-ready" >> $RCLOCAL echo "ifconfig lo inet6 del ::1/128" >> $RCLOCAL } mk_new_menu() { if [ -e /usr/lib/lx-office-crm ] ; then #crm vorhanden, dann die menu.ini mit der höchsten VersNr nehmen for i in `ls -1 /usr/lib/lx-office-crm/update/menu*ini` ; do cat $i > /usr/lib/lx-office-erp/menu.ini done; cat /usr/lib/lx-office-erp/menu.default >> /usr/lib/lx-office-erp/menu.ini else cp /usr/lib/lx-office-erp/menu.default /usr/lib/lx-office-erp/menu.ini fi } mk_new_config() { if ! [ -f /etc/lx-office-erp/lx-erp.conf ] ; then cp /etc/lx-office-erp/lx-erp.conf.default /etc/lx-office-erp/lx-erp.conf fi if ! [ -f /etc/lx-office-erp/console.conf ] ; then cp /etc/lx-office-erp/console.conf.default /etc/lx-office-erp/console.conf fi } mk_links() { if ! [ -f /usr/lib/lx-office-erp/config/authentication.pl ] ; then ln -s /etc/lx-office-erp/authentication.pl /usr/lib/lx-office-erp/config/authentication.pl fi; if ! [ -f /usr/lib/lx-office-erp/config/lx-erp.conf ] ; then ln -s /etc/lx-office-erp/lx-erp.conf /usr/lib/lx-office-erp/config/lx-erp.conf fi; if ! [ -f /usr/lib/lx-office-erp/config/console.conf ] ; then ln -s /etc/lx-office-erp/console.conf /usr/lib/lx-office-erp/config/console.conf fi; if [ -e /etc/apache2 ] ; then if ! [ -f /etc/apache2/conf.d/lx-office-erp.apache2.conf ] ; then ln -s /etc/lx-office-erp/lx-office-erp.apache2.conf /etc/apache2/conf.d/lx-office-erp.apache2.conf fi; fi; if [ -e /etc/cherokee/sites-available ] ; then if ! [ -f /etc/cherokee/sites-available/lx-office-erp.cherokee ] ; then cat /etc/lx-office-erp/lx-office-erp.cherokee.handler >> /etc/cherokee/sites-available/default ln -s /etc/lx-office-erp/lx-office-erp.cherokee /etc/cherokee/sites-available/lx-office-erp.cherokee fi; fi; if [ -e /etc/lighttpd ] ; then if ! [ -f /etc/lighttpd/conf-enabled/lx-office-erp.lighttpd ] ; then ln -s /etc/lx-office-erp/lx-office-erp.lighttpd /etc/lighttpf/conf-enabled/10-lx-office-erp fi; fi; } reload_web_server() { if [ -f /etc/init.d/apache* ] ; then /etc/init.d/apache* reload fi if [ -f /etc/init.d/cherokee ] ; then /etc/init.d/cherokee reload fi if [ -f /etc/init.d/lighttpd ] ; then /etc/init.d/lighttpd reload fi } case "$1" in upgrade) echo " ! "`date`" $1 !" >> /tmp/lxo-erp.log VER=`cat /var/www/lx-office-erp/VERSION | cut -d '.' -f2` if [ $VER = '6' ]; then echo " ! 2.6 !" >> /tmp/lxo-erp.log echo "Version 2.6" mk_new_menu else mk_new_menu mk_new_config config_postgresql_factory_script set_lx_office_erp_web_admin_password set_lx_office_erp_authentication_db_user set_lx_office_erp_authentication_db_password # disable_ipv6_on_lo_interface mk_links fi; set_user_rights reload_web_server ;; install|configure) echo " ! "`date`" $1 !" >> /tmp/lxo-erp.log mk_new_menu mk_new_config config_postgresql_factory_script set_lx_office_erp_web_admin_password set_lx_office_erp_authentication_db_user set_lx_office_erp_authentication_db_password # disable_ipv6_on_lo_interface mk_links set_user_rights reload_web_server ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. echo "done!!" exit 0