diff options
Diffstat (limited to 'mail/postfix21/pkg-install')
-rw-r--r-- | mail/postfix21/pkg-install | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/mail/postfix21/pkg-install b/mail/postfix21/pkg-install new file mode 100644 index 000000000000..7b4849639b05 --- /dev/null +++ b/mail/postfix21/pkg-install @@ -0,0 +1,77 @@ +#!/bin/sh + +user=postfix +group=postfix +group2=maildrop + +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 +} + +if pw groupshow "${group}" 2>/dev/null; then + echo "You already have a group \"${group}\", so I will use it." +else + echo "You need a group \"${group}\"." + if yesno "Would you like me to create it" y; then + pw groupadd ${group} -h - || exit + echo "Done." + else + echo "Please create it, and try again." + exit 1 + fi +fi + +if pw groupshow "${group2}" 2>/dev/null; then + echo "You already have a group \"${group2}\", so I will use it." +else + echo "You need a group \"${group2}\"." + if yesno "Would you like me to create it" y; then + pw groupadd ${group2} -h - || exit + echo "Done." + else + echo "Please create it, and try again." + exit 1 + fi +fi + +if pw user show "${user}" 2>/dev/null; then + echo "You already have a user \"${user}\", so I will use it." +else + echo "You need a user \"${user}\"." + if yesno "Would you like me to create it" y; then + pw useradd ${user} -g ${group} -h - -d /nonexistent \ + -s /nonexistent -c "Postfix Mail System" || exit + echo "Done." + else + echo "Please create it, and try again." + exit 1 + fi +fi + +chown root:maildrop ${PREFIX}/sbin/postdrop +chmod 2755 ${PREFIX}/sbin/postdrop |