#!/usr/bin/perl -T -w -I/opt/eprints/perl_lib 

######################################################################
#
# chkconfig: - 85 15
# description: Start the eprints indexer daemon as the correct user
#
######################################################################
#
#  This file is part of GNU EPrints 2.
#  
#  Copyright (c) 2000-2004 University of Southampton, UK. SO17 1BJ.
#  
#  EPrints 2 is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#  
#  EPrints 2 is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#  
#  You should have received a copy of the GNU General Public License
#  along with EPrints 2; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
######################################################################

use EPrints::SystemSettings;

use strict;

if( $< != 0 )
{
	print "This script is intended to start the eprints indexer as a service.\nIt should only be run as root.\nExiting.\n";
	exit 1;
}
if( !defined $ARGV[0] || $ARGV[0] !~ m/^(start|stop|status)$/ )
{
	print "Usage: $0 {start|stop|status}\n";
	exit 1;
}
my $opt = $1;

my @uinfo = getpwnam($EPrints::SystemSettings::conf->{'user'});
my @ginfo = getgrnam($EPrints::SystemSettings::conf->{'group'});
my $uid = $uinfo[2];
my $gid = $ginfo[2];
$( = $) = $gid;
$> = $< = $uid;

my $indexer_cmd = $EPrints::SystemSettings::conf->{'base_path'}.'/bin/indexer';
$| = 0;
if( $opt eq 'start' )
{
	print 'Starting EPrints Indexer: ';
}
if( $opt eq 'stop' )
{
	print 'Stopping EPrints Indexer: ';
}
delete $ENV{'PATH'};
my $rv = system( $indexer_cmd, $opt );
$rv = $rv >> 8;
if( $opt eq 'start' || $opt eq 'stop' ) 
{
	if( $rv == 0 )
	{
		print '                                 [  OK  ]'."\n";
	}
	else
	{
		print '                                 [FAILED]'."\n";
	}
}

exit $rv;
