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

set -e

. /usr/share/debconf/confmodule

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

ejabberd_config='/etc/ejabberd/ejabberd.cfg'
if test -f $ejabberd_config; then
  sed -i "s/acl, *\([^,]*\), *{user, *\([^,]*\), *[^}]*/acl, \1, {user, \2, \"$domain\"/" /etc/ejabberd/ejabberd.cfg
  sed -i "s/hosts, *\[[^]]*/hosts, [\"$domain\"/" /etc/ejabberd/ejabberd.cfg
fi

echo -n 'Fetching noosfero database name ...'
noosfero_database=$(noosfero-runner 'puts Environment.connection_config[:database]')
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 production < /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#