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

#Order of fields is
#format=adminlevel,defaultaccount,wckey 
verbose_flag=

print_header()
{	if [ "x$verbose_flag" = "xyes" ]; then
		echo "WCKey|Cluster|User|"
		#Print at most once
		verbose_flag=
	fi
}

print_wckey()
{	wckey=$1
	cluster=$2
	user=$3
	echo "$wckey|$cluster|$user|"
}


print_aaa_ys_payerle()
{	print_header
	print_wckey 'aaa' 'yottascale' 'payerle'
}

print_aaa_ys_root()
{	print_header
	print_wckey 'aaa' 'yottascale' 'root'
}

print_bbb_ys_root()
{	print_header
	print_wckey 'bbb' 'yottascale' 'root'
}

print_ccc_test1_payerle()
{	print_header
	print_wckey 'ccc' 'test1' 'payerle'
}

print_ddd_ys_payerle()
{	print_header
	print_wckey 'ddd' 'yottascale' 'payerle'
}

print_aaa()
{	print_header
	print_aaa_ys_payerle
	print_aaa_ys_root
}

print_bbb()
{	print_header
	print_bbb_ys_root
}

print_ccc()
{	print_header
	print_ccc_test1_payerle
}

print_ddd()
{	print_header
	print_ddd_ys_payerle
}

print_payerle()
{	print_header
	print_aaa_ys_payerle
	print_ccc_test1_payerle
	print_ddd_ys_payerle
}

print_root()
{	print_header
	print_aaa_ys_root
	print_bbb_ys_root
}

print_all()
{	print_header
	print_aaa
	print_bbb
	print_ccc
	print_ddd
}

print_none()
{	print_header
}

#Parse options
wckey_flag=
user_flag=
cluster_flag=

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

	case $arg in
	    wckey=* )
		tmp=`echo $arg | sed -e 's/^wckey=//' -e "s/'//g" -e 's/"//g' `
		wckey_flag=$tmp
		;;
	    cluster=* )
		tmp=`echo $arg | sed -e 's/^cluster=//' -e "s/'//g" -e 's/"//g' `
		cluster_flag=$tmp
		;;
	     user=* )
		tmp=`echo $arg | sed -e 's/^user=//' -e "s/'//g" -e 's/"//g' `
		user_flag=$tmp
		;;
	     -v|--verbose)
		verbose_flag=yes
		;;
	esac
done

if [ "x${wckey_flag}" != "x" ]; then
	case $wckey_flag in
	   aaa)
		if [ "x${user_flag}" != "x" ]; then
			case $user_flag in
			    root)
				print_aaa_ys_root
				;;
			    payerle)
				print_aaa_ys_payerle
				;;
			    *)
				print_none
				;;
			esac
		else
			print_aaa
		fi
		;;
	   bbb)
		if [ "x${user_flag}" != "x" ]; then
			case $user_flag in
			    root)
				print_bbb_ys_root
				;;
			    *)
				print_none
				;;
			esac
		else
			print_bbb
		fi
		;;
	   ccc)
		if [ "x${user_flag}" != "x" ]; then
			case $user_flag in
			    payerle)
				print_ccc_test1_payerle
				;;
			    *)
				print_none
				;;
			esac
		else
			print_ccc
		fi
		;;
	   ddd)
		if [ "x${user_flag}" != "x" ]; then
			case $user_flag in
			    payerle)
				print_ddd_ys_payerle
				;;
			    *)
				print_none
				;;
			esac
		else
			print_ddd
		fi
		;;
	   *)
		print_none
		;;
	esac
elif [ "x${user_flag}" != "x" ]; then
	case $user_flag in
	    root)
		print_root
		;;
	    payerle)
		print_payerle
		;;
	    *)
		print_none
		;;
	esac
else
	print_all
fi
