#!/bin/csh -f
#
# $FreeBSD: ports/mail/qmail/files/pkg-install.in,v 1.4 2006/01/30 16:25:14 garga Exp $
#

# Author : Marcos Tischer Vallim
# E-Mail : tischer@gmail.com
# Date   : Tue Mar 22 00:40:45 BRT 2005

set path = ( /bin /sbin /usr/bin /usr/sbin )

if ($uid != 0) then
	echo "It is necessary to add missing qmail users/groups at";
	echo "this stage.  Please either add them manually or retry";
	echo "as root.";
	exit 1;
endif

if (! -x `which pw`) then
	echo "This system looks like a pre-2.2 version of FreeBSD.  We see that it";
	echo "is missing the "pw" utility.  We need this utility.  Please get and";
	echo "install it, and try again.  You can get the source from:";
	echo "";
	echo "  ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz";
	echo "";
	echo "No pw";
	exit 1;
endif

switch ($argv[2])

case "PRE-INSTALL":
	set groups  = (qmail qnofiles);
	set gids    = (82 81);
	set users   = (alias qmaild qmaill qmailp qmailq qmailr qmails);
	set users_g = (qnofiles qnofiles qnofiles qnofiles qmail qmail qmail);
	set uids    = (81 82 83 84 85 86 87);


	set k = 1;
	foreach group ($groups)
		pw groupshow $group >& /dev/null;
	
		if ($status) then
			pw groupadd $group -g $gids[$k];
	
			if ($status) then
				echo "Failed to add group '$group' as gid '$gids[$k]'";
				exit 1;
			endif
		endif
	
		set chkgid = (`pw groupshow $group | sed -e "s,:, ,g"`); 
		if ($chkgid[3] != $gids[$k]) then
			echo "Group '$group' should have gid '$gids[$k]'";
			exit 1;
		endif
	
		@ k++;
	end
	
	set k = 1;
	foreach user ($users)
		pw usershow $user >& /dev/null;
	
		if ($status) then
			if ($user == "alias") then
				set home = ${PKG_PREFIX}/alias;
			else
				set home = ${PKG_PREFIX};
			endif
	
			pw useradd $user -g $users_g[$k] -d $home -s /nonexistent -u $uids[$k];
	
			if ($status) then
				echo "Failed to add user '$user' as uid '$uids[$k]'";
				exit 1;
			endif
		endif
	
		set chkuid = (`pw usershow $user | sed -e "s,:, ,g"`); 
		if ($chkuid[3] != $uids[$k]) then
			echo "User '$user' should have uid '$uids[$k]'";
			exit 1;
		endif
	
		@ k++;
	end

	breaksw;

case "POST-INSTALL":
	${PKG_PREFIX}/configure/install x;

	if ( ! `filetest -e ${PKG_PREFIX}/control/me` ) then
		cd ${PKG_PREFIX}/configure && ./config;
	endif

	ln -s ${PKG_PREFIX}/rc /usr/local/etc/rc.d/qmail.sh;

	touch ${PKG_PREFIX}/alias/.qmail-{postmaster,root,mailer-daemon};

	if ($status) then
		echo "Failed to create files :";
		echo "  ${PKG_PREFIX}/alias/.qmail-postmaster";
		echo "  ${PKG_PREFIX}/alias/.qmail-root";
		echo "  ${PKG_PREFIX}/alias/.qmail-mailer-daemon";
		exit 1;
	endif

	breaksw;
endsw

exit 0;


syntax highlighted by Code2HTML, v. 0.9.1