File check-apache.sh of Package kolab-scripts

#!/bin/bash
# KPS_CHECK_ORDER: 20

# (c) 2013 Richard Bos

PATH=/usr/bin:/bin:/usr/sbin

# If changes are made by this script, a restart of apache is
# needed.  However, as this script is most likely run before
# kolab is configured, it does not make sense to include the
# restart in this script.

echo -n "Checking SSL apache flag in /etc/sysconfig/apache2... "
eval $(grep ^APACHE_SERVER_FLAGS= /etc/sysconfig/apache2)
for F in $APACHE_SERVER_FLAGS; do
  if [[ "$F" == "SSL" ]]; then
    HAS_SSL_FLAG=true
    break
  fi
done

if [[ "$HAS_SSL_FLAG" == "true" ]]; then
  echo OK
else
  echo
  BACKUP="/tmp/kolab-check-etc_sysconfig_apache2-$(date +%s)"
  cp /etc/sysconfig/apache2 $BACKUP
  # Wait 1 second, so the next backup has a different timestamp
  sleep 1
  sed -i "s/^APACHE_SERVER_FLAGS=.*/APACHE_SERVER_FLAGS=\"${APACHE_SERVER_FLAGS} SSL\"/;s/=\" /=\"/" /etc/sysconfig/apache2
  echo "  Added SSL apache flag to APACHE_SERVER_FLAGS in /etc/sysconfig/apache2"
  echo "  Backup stored at: $BACKUP"
  echo
fi

echo -n "Checking required apache modules in /etc/sysconfig/apache2... "
eval $(grep ^APACHE_MODULES= /etc/sysconfig/apache2)
# REQ_MOD="ldap authnz_ldap dav dav_fs rewrite authn_alias php5"
REQ_MOD="rewrite php5 ssl"
for M in $REQ_MOD; do
  if ! grep -qw $M <<< "$APACHE_MODULES"; then
    MISSING_MODS="$MISSING_MODS$M "
  fi
done

if [[ -z "$MISSING_MODS" ]]; then
  echo OK
else
  echo
  BACKUP="/tmp/kolab-check-etc_sysconfig_apache2-$(date +%s)"
  cp /etc/sysconfig/apache2 $BACKUP
  APACHE_MODULES="$APACHE_MODULES ${MISSING_MODS%% }"
  sed -i "s/^APACHE_MODULES=.*/APACHE_MODULES=\"$APACHE_MODULES\"/" /etc/sysconfig/apache2
  echo "  Added modules: ${MISSING_MODS%% } to APACHE_MODULES in /etc/sysconfig/apache2"
  echo "  Backup stored at: $BACKUP"
  echo
fi

openSUSE Build Service is sponsored by