noosfero-chat.postinst 2.1 KB
#!/bin/bash

set -e

. /usr/share/debconf/confmodule

db_get noosfero-chat/environment
if [ ! -z "$RET" ]; then
  environment="${RET}_production"
else
  environment="production"
fi

domain=$(noosfero-runner 'puts Environment.default.default_hostname(true)' $environment)
echo " [domain = $domain]"

db_get noosfero-chat/admin
if [ ! -z "$RET" ]; then
  admin="$RET@$domain"
else
  admin="admin@$domain"
fi
echo " [admin = $admin]"

ejabberd_config='/etc/ejabberd/ejabberd.yml'
if test -f $ejabberd_config; then
  sed -i "s/HOST_DOMAIN/$domain/" /etc/ejabberd/ejabberd.yml
  sed -i "s/ACL_ADMIN_ACCOUNT/$admin/" /etc/ejabberd/ejabberd.yml
fi

echo -n 'Fetching noosfero database name ...'
noosfero_database=$(noosfero-runner 'puts Environment.connection_config[:database]' $environment)
echo " [database = $noosfero_database]"

echo 'Creating ejabberd schema ...'
. /etc/default/noosfero
noosfero_user="$NOOSFERO_USER"

if dpkg -s postgresql &> /dev/null ; then
  su - postgres -c "psql -c 'GRANT CREATE ON DATABASE $noosfero_database TO $noosfero_user;' > /dev/null"
else
  echo "[W]: No postgres installed. You're probably using noosfero's database in another machine. Make sure user $noosfero_user has CREATE permissions on $noosfero_database database by running:"
  echo " => GRANT CREATE ON DATABASE $noosfero_database TO $noosfero_user;"
fi

su - $noosfero_user -c "rails dbconsole $environment < /usr/share/noosfero/util/chat/postgresql/ejabberd.sql > /dev/null"

if which update-noosfero-odbc &> /dev/null ; then
  update-noosfero-odbc
fi

ejabberd_default='/etc/default/ejabberd'
noosfero_chat_default='/etc/default/noosfero-chat'

if test -f $ejabberd_default; then
  if ! cat $ejabberd_default | grep "^\. $noosfero_chat_default" > /dev/null ; then
    echo 'Extending ejabberd defaults with noosfero-chat defaults ...'
    echo ". $noosfero_chat_default" >> $ejabberd_default
  fi
fi

a2enmod proxy_http

invoke-rc.d ejabberd restart
invoke-rc.d noosfero restart
invoke-rc.d apache2  restart

# stop debconf to avoid the problem with infinite hanging, cfe
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295477
db_stop

#DEBHELPER#