#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/sun-java-1.5.0_10
export ANT_HOME=/usr/lib/ant
export GLOBUS_LOCATION=/usr/local/globus4.0.4
deploy=/usr/local/globus-4.0.4/bin/globus-deploy-gar
undeploy=/usr/local/globus-4.0.4/bin/globus-undeploy-gar
# Use at least enough arguments to ensure a valid type and action, or error out.
if [ $# -lt 2 ]; then
echo "not enough arguments: $0 $*" >&2
exit 1
fi
# Initialize type and action to leave the remaining args as the filelist.
type="$1"
shift
action="$1"
shift
# Use case type to ensure that the taghandler is passed only types it can
# handle. In this case, use only handle files and error out on anything
# else
case "$type" in
files)
# For file type operations, case the possible actions and error
# for anything unsupported.
case "$action" in
update)
# Iterate the file list because it is not known in advance
# how many files we will be passed in a given operation.
running=0;
if [ -f $GLOBUS_LOCATION/var/container.pid ]; then
echo "Stopping GT4 Container"
running=1;
/usr/local/globus-4.0.4/bin/globus-stop-container-detached
fi
for file in $@; do
garid=$(echo $file | sed -e 's/.gar//')
if [ -d $GLOBUS_LOCATION/etc/globus_packages/$garid ]; then
echo "Packaged already deployed! Undeploying first!"
$undeploy $garid
fi
$deploy $file
done
if [ $running -ne 0 ]; then
/usr/local/globus-4.0.4/bin/globus-start-container-detached -nosec
fi
;;
# Use preremove to cleanly stop a service
# before removing the init file which controls it.
remove)
if [ -f $GLOBUS_LOCATION/var/container.pid ]; then
echo "Stopping GT4 Container"
/usr/local/globus-4.0.4/bin/globus-stop-container-detached
fi
for file in $@; do
garid=$(echo $file | sed -e 's/.gar//')
if [ -d $GLOBUS_LOCATION/etc/globus_packages/$garid ]; then
$undeploy $garid
fi
done
;;
*)
echo "ERROR: taghandler $0 invoked for an action ($action) that is not handled" 1>&2
exit 1
;;
esac
;;
*)
echo "ERROR: taghandler $0 invoked for a type ($type) that is not handled" 1>&2
exit 1
;;
esac
exit 0