#!/h/COE/Comp/PERL5/bin/perl -T -I/h/COE/lib  -U
#-
 # Copyright (C) 2002, Federal Linux Systems
 # License: GNU Lesser General Public License, v2.1
#- 

#- The -U flag is to allow running of the COE_get_user_id under -T mode
#- The -w flag is dropped to prevent the above warning

use strict;
use Coe;

my $PRGM="COE_get_user_data";
my $VERSION="1.1.4.1";

if (@ARGV == 0) {
	&useage;
	exit 202;
} 

sub useage {
  	print "Useage: $PRGM [options] ";
	print "{-f} {-n  | -u } {-s a|g|l}\n";
}

my $arg1;
my $coedat;
my $COEDAT;
my $i;
my $s="a";
my $scope="a";
my $userid="all";
my $username="all";
my $flagreserved="false";
my $COEERR=0;

my @u;
my @uid;

while (@ARGV > 0 ){
	$arg1=cleanString(shift,1);
	if ("$arg1" eq "-h") {
		useage;
   		exit 0;
	} elsif ("$arg1" eq "-H") {
		coeMan("COE_COMP/UserMgmt/docs/man/$PRGM");
   		exit 0;
	} elsif ("$arg1" eq "-V") {
   		print "VERSION: $VERSION\n";
   		exit 0;
	} elsif ("$arg1" eq "-f") {
		$flagreserved="true";
	} elsif ("$arg1" eq "-s") {
		$scope=cleanString(shift,1);
	} elsif ("$arg1" eq "-n") {
		$username=cleanString(shift,1);
	} elsif ("$arg1" eq "-u") {
		$userid=cleanString(shift,1);
	} else {
		useage;
   		exit 202;
	}
}
if ("$scope" eq "l" || "$scope" eq "local" ) {
	$scope="local";
	$s="l";
} elsif ("$scope" eq "g" || "$scope" eq "global") {
	$scope="global";
	$s="g";
} else {
	useage;
	exit 202;
}

if ("$username" ne "all") {
	$userid=coeExec("COE_HOME/bin/COE_get_user_id $username $scope");
	$userid=cleanString($userid,0);
}

$coedat=coeFileConv "COE_USER/$scope/Profiles/.User.dat";

# User.dat format:: uid:username:fullname::::::

# get the UIDS
$i=0;
$COEDAT=readFile($coedat);

if ("$userid" eq "all"){
	while (<$COEDAT>) { $uid[$i++]=$_; }
} else {
	while (<$COEDAT>){ if (/^$userid:/ || /:$username:/) { $uid[$i++]=$_; }}
}
close $COEDAT;

foreach (@uid) {
#	$_=cleanString($_,3);
	chomp($_);
	@u=split(':');
	if ("$flagreserved" eq "true") {
	   print "$u[0]:$u[1]:$u[2]:$s:$u[3]:$u[4]:$u[5]:$u[6]:$u[7]:$u[8]\n";
	} else {
	   print "$u[0]:$u[1]:$u[2]:$s\n";
	}
}	

# if no such user is found, mark the exit as such
if ($i == 0) {
	$COEERR=203;
}

exit $COEERR;