#!/usr/bin/perl
#

eval '(exit $?0)' && eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
& eval 'exec /usr/bin/perl -S $0 $argv:q'
if 0;

if( $> ) {
	print "\nYou must be root to run this step!\n\n";
	exit 1;
} 

if( ! -x "/usr/sbin/pw" ) {
	print "\nYou require the pw command, which was included in FreeBSD v2.2 builds\n";
	print "as of Dec 9th 1996.  If you don't have it, try looking in\n";
	print "/usr/src/usr.sbin/pw and building it\n\n";
	exit 1;
}

if( getpwnam( "news" ) ) {
	$have_user = 1;
	( $null, $null, $cUID ) = getpwnam( "news" );
} else {
	$cUID = 8;
	while( getpwuid( $cUID ) ) {
		$cUID++;
	}
}

if( getgrnam( "news" ) ) {
	$have_group = 1;
	( $null, $null, $cGID ) = getgrnam( "news" );
} else {
	$cGID = 8;
	while( getgrgid( $cGID ) ) {
		$cGID++;
	}
}

print "news user using uid $cUID\n";
print "news group using gid $cGID\n";

if( ! $have_group ) {
	$result = system( "/usr/sbin/pw groupadd news -g $cGID" );
} else {
	$result = system( "/usr/sbin/pw groupmod news -g $cGID" );
}
if( $result ) {
	print "Failed to add group news!\n";
	exit 1;
}

$result = system( "/usr/sbin/pw groupmod news -m daemon" );
if( $result ) {
	print "Failed to add user daemon to group news!\n";
	exit 1;
}


if( ! $have_user ) {
	$result = system( "pw useradd news -u $cUID -g $cGID -d \"/usr/local/news\" -c \"The Diablo News System\" -s \"/bin/sh\" -p \"*\"" );
} else {
	$result = system( "pw usermod news -u $cUID -g $cGID -d \"/usr/local/news\" -c \"The Diablo News System\" -s \"/bin/sh\" -p \"*\"" );
}
if( $result ) {
	print "Failed to add/modify user news!\n";
	exit 1;
}
