#! /bin/sh

#DEBUG=true
#SECURITY_DEBUG=true 
#DEBUG=false
if [ "$SRM_PATH" = "" ]
then
  echo SRM_PATH is not set
  exit 1
fi

if [ ! -f $SRM_PATH/lib/srm_client.jar ]
then
  echo cannot find $SRM_PATH/lib/srm_client.jar
  exit 1
fi

if [ ! -f $SRM_PATH/lib/glue/GLUE-STD.jar ]
then
  echo cannot find $SRM_PATH/lib/glue/GLUE-STD.jar
  exit 1
fi

SRM_CP=$SRM_PATH/lib/srm_client.jar
SRM_CP=$SRM_CP:$SRM_PATH/lib/srm.jar

# glue
SRM_CP=$SRM_CP:$SRM_PATH/lib/glue/GLUE-STD.jar
SRM_CP=$SRM_CP:$SRM_PATH/lib/glue/dom.jar
SRM_CP=$SRM_CP:$SRM_PATH/lib/glue/servlet.jar
SRM_CP=$SRM_CP:$SRM_PATH/lib/glue/jnet.jar
SRM_CP=$SRM_CP:$SRM_PATH/lib/glue/jsse.jar
SRM_CP=$SRM_CP:$SRM_PATH/lib/glue/jcert.jar


# old globus cog jars
#SRM_CP=$SRM_CP:$SRM_PATH/lib/globus/cog.jar:$SRM_PATH/lib/globus/iaik_javax_crypto.jar
#SRM_CP=$SRM_CP:$SRM_PATH/lib/globus/iaik_jce_full.jar:$SRM_PATH/lib/globus/iaik_ssl.jar
#SRM_CP=$SRM_CP:$SRM_PATH/lib/globus/log4j-core.jar

# globus cog
for i in $SRM_PATH/lib/globus/*.jar
do
	SRM_CP=$SRM_CP:$i
done


for i in $SRM_PATH/lib/axis/*.jar
do
	SRM_CP=$SRM_CP:$i
done


OPTIONS="-Djava.protocol.handler.pkgs=org.globus.net.protocol"
if [ "$DEBUG" = "true" ]
then
  OPTIONS=" ${OPTIONS} -Delectric.logging=SOAP,HTTP"
fi

if [ "$SECURITY_DEBUG" = "true" ]
then
  OPTIONS=" ${OPTIONS} -Dlog4j.configuration=${SRM_PATH}/bin/log4j.properties.all -Dlog4j.debug=true "
fi

#OPTIONS=" ${OPTIONS} -Dorg.globus.tcp.port.range=50000,50050"
if [ ! -d $HOME/.srmconfig ]
then
	mkdir $HOME/.srmconfig
fi
SRM_CONFIG=$HOME/.srmconfig/config.xml
#cd $SRM_PATH/bin

if [ ! -f $SRM_CONFIG ]
then
	echo configuration file not found, configuring srmcp >&2
	x509_user_proxy=$HOME/k5-ca-proxy.pem
	x509_user_key=$HOME/k5-ca-proxy.pem
	x509_user_cert=$HOME/k5-ca-proxy.pem
	x509_user_trusted_certs=$HOME/.globus/certificates
	use_proxy=true
	url_copy=$SRM_PATH/bin/url-copy.sh
	mapfile=$SRM_PATH/conf/SRMServerV1.map
	
	cmd="java -cp $SRM_CP $OPTIONS gov.fnal.srm.util.SRMCopy \
	    -mapfile=$mapfile \
	    -urlcopy=$url_copy \
	    -x509_user_proxy=$x509_user_proxy \
	    -x509_user_key=$x509_user_key \
	    -x509_user_cert=$x509_user_cert \
	    -x509_user_trusted_certificates=$x509_user_trusted_certs \
	    -use_proxy=$use_proxy \
	    -srmcphome=$SRM_PATH \
	    -save_conf=$SRM_CONFIG \
	    $*"

	if [ "$DEBUG" = "true" ]
	then
		echo $cmd
	fi
	$cmd
	if tty -s
	then
		echo would you like to view/edit configuration file?[y/n] >&2
		read -t 60 ANSWER
		if [ "$ANSWER" = "y" ]
		then
			${VISUAL:-${EDITOR:-vi}} $SRM_CONFIG
		fi
	fi
fi
	
URL_COPY=$SRM_PATH/bin/url-copy.sh

#cd $SRM_PATH/bin
cmd="java -cp $SRM_CP $OPTIONS gov.fnal.srm.util.SRMCopy -conf=$SRM_CONFIG $*"
if [ "$DEBUG" = "true" ]
then
	echo $cmd
fi
$cmd
