#!/bin/sh user=ifmail group=uucp uid=70 ask() { local question default answer question=$1 default=$2 if [ -z "${PACKAGE_BUILDING}" ]; then read -p "${question} [${default}]? " answer fi if [ x${answer} = x ]; then answer=${default} fi echo ${answer} } yesno() { local dflt question answer question=$1 dflt=$2 while :; do answer=$(ask "${question}" "${dflt}") case "${answer}" in [Yy]*) return 0;; [Nn]*) return 1;; esac echo "Please answer yes or no." done } case $2 in PRE-INSTALL) if which -s pw; then : else cat </dev/null; then echo "You already have a user \"${user}\", so I will use it." else echo "You need a user \"${user}\"." if which -s pw && yesno "Would you like me to create it" y; then if [ `id -u` -ne 0 ]; then echo "You must be root to add the user." exit 1 fi if pw user show ${uid} >/dev/null 2>&1; then echo "The ifmail user is normally UID ${uid}. However, you currently have" echo "a UID ${uid}." if yesno "Should I just pick a new UID" y; then while pw user show ${uid} >/dev/null 2>&1; do uid=`expr ${uid} + 1` done if [ $uid -gt 99 ]; then echo "I can't find a low UID to use. Please create an 'ifmail' user" echo "and try the installation again." exit 1 fi else exit 1 fi echo "Ok, I'll use UID ${uid}." fi pw useradd ${user} -g ${group} -u ${uid} -h - -d /nonexistent \ -s /nonexistent -c "Ifmail user" || exit 1 echo "Done." else echo "Please create it, and try again." exit 1 fi fi ;; # # The package system untar's the file first, potentially before the # ifmail user is created. This means that the files in # ${PREFIX}/libexec/ifmail will be setuid root, not setuid ifmail. # We have to fix this up. POST-INSTALL) chown ifmail ${PREFIX}/libexec/ifmail/* ;; esac