#!/bin/sh
#
#Fake sacctmgr show acct results for testing

#Order of fields is
#format=account,description,organization
# list account format=account,description,organization --parsable2 --noheader --readonly

#        { acct=>'aaa', desn=>'test account 1', org=>'aa' },
#        { acct=>'aab', desc=>'test account 1b', org=>'aa' },
#        { acct=>'bbb', desc=>'test account 2', org=>'bb' },
#        { acct=>'ccc', desc=>'test account 3', org=>'cc' },


print_header()
{
	echo "Account|Descr|Org|"
}

print_acct()
{	name=$1
	desc=$2
	org=$3
	echo "$name|$desc|$org|"
}

print_specified_acct()
{	acct=$1

	case $acct in
	   aaa)
		print_acct 'aaa' 'test account 1' 'aa'
		;;
	   aab)
		print_acct 'aab' 'test account 1b' 'aa'
		;;
	   bbb)
		print_acct 'bbb' 'test account 2' 'bb'
		;;
	   ccc)
		print_acct 'ccc' 'test account 3' 'cc'
		;;
	   *)
		x=x
		#echo >&2 "Unknown acct $usr"
		;;
	esac
}

print_accts()
{	#We always have --noheader
	#print_header
	while [ $# -gt 0 ]
	do
		acct=$1
		shift
		print_specified_acct $acct
	done
}

print_all_accts()
{	#Must do alphabetically
	print_accts 'aaa' 'aab' 'bbb' 'ccc' 
}


print_org_aa_accts()
{	#Print all accts with org aa
	print_accts 'aaa' 'aab'
}

print_org_bb_accts()
{	#Print all accts with org bb
	print_accts 'bbb'
}

print_org_cc_accts()
{	#Print all accts with org cc
	print_accts 'ccc'
}

print_desc_1b_accts()
{	#Print all accts with org aa and desc 'test account 1b'
	print_accts 'aab'
}

print_org_aa_1b_accts()
{	#Print all accts with org aa and desc 'test account 1b'
	print_accts 'aab'
}

print_no_accts()
{	print_accts 'no-such-acct'
}

#Parse options
org_flag=
name_flag=
desc_flag=

while [ $# -gt 0 ]
do
	arg=$1
	shift

	case $arg in
	    name=* )
		tmp=`echo $arg | sed -e 's/^name=//' -e "s/'//g" -e 's/"//g' `
		name_flag=$tmp
		;;
	    organization=* )
		tmp=`echo $arg | sed -e 's/^organization=//' -e "s/'//g" -e 's/"//g' `
		org_flag=$tmp
		;;
	     description=* )
		tmp=`echo $arg | sed -e 's/^description=//' -e "s/'//g" -e 's/"//g' `
		desc_flag="$tmp"
		;;
	esac
done

if [ "x${org_flag}" != "x" ]; then
	#org requested, possibly with desc
	if [ "x${desc_flag}" = "x" ]; then
		if [ "x${org_flag}" = "xaa" ]; then
			#Org aa only
			print_org_aa_accts
		elif [ "x${org_flag}" = "xbb" ]; then
			print_org_bb_accts
		elif [ "x${org_flag}" = "xcc" ]; then
			print_org_cc_accts
		fi
	elif [ "x${desc_flag}" = "xtest account 1b" ]; then
		if [ "x${org_flag}" = "xaa" ]; then
			print_org_aa_1b_accts
		else
			print_no_accts
		fi
	fi
elif [ "x${desc_flag}" = "xtest account 1b" ]; then
	print_desc_1b_accts
elif [ "x${name_flag}" != "x" ]; then
	#name specified.  Do not handle multiple flags here
	print_specified_acct $name_flag
else
	#No flags, print all accounts
	print_all_accts
fi


