#!/bin/sh
# $OpenBSD: INSTALL,v 1.15.4.1 2005/03/27 15:07:30 sturm Exp $
#
# Pre/post-installation setup of Squid

PATH=/bin:/usr/bin:/sbin:/usr/sbin
PREFIX=${PKG_PREFIX:-/usr/local}
CONFIG_DIR=/etc/squid
SAMPLE_CONFIG_DIR=$PREFIX/share/examples/squid
SQUIDDIR=/var/squid
SQUIDUSER=_squid
SQUIDGROUP=_squid
ID=515

do_usergroup_install()
{
  # Create Squid user and group
  groupinfo -e $SQUIDGROUP
  if [ $? -eq 0 ]; then
    echo "===> Using $SQUIDGROUP group for Squid"
  else
    echo "===> Creating $SQUIDGROUP group for Squid"
    groupadd -g $ID $SQUIDGROUP
  fi
  userinfo -e $SQUIDUSER
  if [ $? -eq 0 ]; then
    echo "===> Using $SQUIDUSER user for Squid"
  else
    echo "===> Creating $SQUIDUSER user for Squid"
    useradd -g $SQUIDGROUP -d /nonexistent -L daemon -c 'Squid Account' -s /sbin/nologin -u $ID $SQUIDUSER
  fi
}

do_squiddir_install()
{
  install -d -o $SQUIDUSER -g $SQUIDGROUP -m 771 $SQUIDDIR
  install -d -o $SQUIDUSER -g $SQUIDGROUP -m 775 $SQUIDDIR/logs
  install -d -o $SQUIDUSER -g $SQUIDGROUP -m 771 $SQUIDDIR/cache
  ln -sf $SQUIDDIR/logs/squid.pid /var/run/squid.pid
}

do_notice_conf()
{
  echo
  echo "+---------------"
  echo "| The existing $1 configuration files in $CONFIG_DIR have NOT"
  echo "| been changed.  You may want to compare them to the current samples in"
  echo "| $SAMPLE_CONFIG_DIR, and update your configuration"
  echo "| files as needed."
}

do_install_conf()
{
  install -d -o root -g wheel -m 755 $CONFIG_DIR
  install -o root -g wheel -m 644 $SAMPLE_CONFIG_DIR/squid.conf $CONFIG_DIR
  install -o root -g wheel -m 644 $SAMPLE_CONFIG_DIR/mime.conf $CONFIG_DIR
  install -o root -g wheel -m 644 $SAMPLE_CONFIG_DIR/mib.txt $CONFIG_DIR
  echo
  echo "+---------------"
  echo "| The $1 configuration files have been installed in $CONFIG_DIR."
  echo "| Please view these files and change the configuration to meet your needs."
}

do_notice_errors_and_icons()
{
  echo "|"
  echo "| The existing $1 errors and icons in $PREFIX/share/squid"
  echo "| have NOT been changed.  You may want to compare them to the"
  echo "| current samples in $SAMPLE_CONFIG_DIR/errors"
  echo "| and $SAMPLE_CONFIG_DIR/icons, and update them as needed."
  echo "+---------------"
  echo
}

do_install_errors_and_icons()
{
  install -d -o root -g wheel -m 755 $PREFIX/share/squid/icons
  install -d -o root -g wheel -m 755 $PREFIX/share/squid/errors
  cp -R $SAMPLE_CONFIG_DIR/errors/* $PREFIX/share/squid/errors
  cp -R $SAMPLE_CONFIG_DIR/icons/* $PREFIX/share/squid/icons
  echo "|"
  echo "| The $1 errors and icons have been installed in $PREFIX/share/squid."
  echo "| Please view these files and change them to meet your needs."
  echo "+---------------"
  echo
}

# verify proper execution
#
if [ $# -ne 2 ]; then
    echo "usage: $0 distname { PRE-INSTALL | POST-INSTALL }" >&2
    exit 1
fi

# Verify/process the command
#
case $2 in
    PRE-INSTALL)
	do_usergroup_install
	;;
    POST-INSTALL)
	if [ ! -d $SQUIDDIR ]; then
	  do_squiddir_install
	fi
	if [ ! -d $CONFIG_DIR ]; then
	   do_install_conf $1
	elif [ ! -f $CONFIG_DIR/squid.conf ]; then
	   do_install_conf $1
	else
	   do_notice_conf $1
	fi
	if [ ! -d $PREFIX/share/squid/errors ]; then
	   do_install_errors_and_icons $1
	elif [ ! -f $PREFIX/share/squid/errors/English/ERR_INVALID_RESP ]; then
	   do_install_errors_and_icons $1
	else
	   do_notice_errors_and_icons $1
	fi
	;;
    *)
	echo "usage: $0 distname { PRE-INSTALL | POST-INSTALL }" >&2
	exit 1
	;;
esac

exit 0
