#!/bin/bash

set -e

###############################################################################
#
# Add the 'gnats' system into the mail aliases
#

if [ "$1" = configure ]; then
  
  #
  # Special mailers
  #

  EXIM=$(dpkg -l exim | protect grep -c '^.i')
  for F in /etc/exim/exim.conf /etc/exim.conf; do
    if [ -f $F ]; then
      EXIMCONF=$F
      break
    fi
  done

  if [ $EXIM -gt 0 ] && [ -n "$EXIMCONF" ]; then
    if [ $(grep -c '^[ \t]*user[ \t]*=' $EXIMCONF) -eq 0 ]; then
      LINES=$(grep '^[ \t]*#[ \t]*user[ \t]*=' $EXIMCONF)
      if [ -n "$LINES" ]; then
        db_subst gnats/exim_user_uncomment LINES "$LINES"
	db_subst gnats/exim_user_uncomment EXIMCONF "$EXIMCONF"
	db_input high gnats/exim_user_uncomment || true
	db_go
      else
	db_subst gnats/exim_user_uncomment EXIMCONF "$EXIMCONF"
	db_input high gnats/exim_user_add || true
	db_go	
      fi
    fi
  fi

  QMAIL=$(dpkg -l qmail | protect grep -c '^.i')

  if [ $QMAIL -gt 0 ]; then

    # Generate dot files
#    echo "qmail found, installing qmail dot files..."
    for I in "qmail root" \
             "qmail-bugs | $GNATSDIR/queue-pr -q" \
             "qmail-query | $GNATSDIR/mail-query"; do
      KEY=${I%% *}
      FILE="$GNATSHOME/.$KEY"
      if [ ! -f $FILE ]; then
	TEMPFILE=$(tempfile)
	echo "${I#$KEY }" >$TEMPFILE
	chmod 0644 $TEMPFILE
	chown gnats.gnats $TEMPFILE
	mv $TEMPFILE $FILE
      fi      
    done
#    echo "Done."

    # Generate aliases
    ASSIGN='/var/qmail/users/assign'
    if [ ! -f $ASSIGN ] || \
       [ $(protect grep -c '^.gnats-admin' $ASSIGN) -eq 0 ]; then
      db_subst gnats/qmail SITE "${SITE}"
      db_input high gnats/qmail || true
      db_go
    fi

  elif [ ! -f $MAILFILE ]; then

    db_subst gnats/unknown_mailer SITE "${SITE}"
    db_input high gnats/unknown_mailer || true
    db_go

  else
  
    #
    # Common mailers
    #

    if [ $(protect \
           egrep -c "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \
	   $MAILFILE) -lt 4 ]; then

      TEMPFILE=$(tempfile)
      sed "s/^#\([ \t]*\(gnats-admin\|bugs\|query-pr\|$SITE-gnats\)\>.*$\)/\1/" $MAILFILE >$TEMPFILE
      
      if [ $(protect \
             egrep -c "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" \
	     $TEMPFILE) -lt 4 ]; then
	egrep -v "^[ \t]*(gnats-admin|bugs|query-pr|$SITE-gnats)\>" $MAILFILE\
	         >$TEMPFILE
	cat - >>$TEMPFILE <<EOF

# begin gnats aliases
gnats:          root
gnats-admin:    gnats
bugs:           "| /usr/lib/gnats/queue-pr -q"
query-pr:       "| /usr/lib/gnats/mail-query"
$SITE-gnats:    bugs
# end gnats aliases
EOF
      fi

      cp $MAILFILE $MAILFILE.dpkg-old
      chmod 644 $TEMPFILE
      mv $TEMPFILE $MAILFILE
      
      NEWALIASES=$(which newaliases)
      if [ -n "$NEWALIASES" ]; then
	"$NEWALIASES"
      fi      
    fi
    
  fi

fi
