#!/bin/sh
# This is a wrapper script for GlassFish adminstration cli command: asadmin
# This script is for ease of use for developers. This command checks if the GlassFish default
# domain (domain1) is present under users home directory. If not, it creates it and starts the domain
# If the directory is present, it just routes all the commands to the /usr/share/glassfishv2/bin/asadmin command.
# For regular asadmin commands, it pushes the commands to the actual asadmin script.
# If developer wants to use other domains; he/she should use the /usr/share/glassfishv2/bin/asadmin command directly.

GLASSFISH_HOME=/usr/share/glassfishv2
GF_DOMAIN_DIR=$HOME/glassfishv2
ADMIN_USER=admin
ADMIN_PASSWORD_FILE=$GLASSFISH_HOME/config/install/default/passwordfile
DEFAULT_DOMAIN=domain1

if [ ! -r $GLASSFISH_HOME/bin/asadmin ]
then
	echo GlassFish bin/asadmin command not Present. Is it uninstalled? Please try installing GlassFish again.
	exit 1
fi

if [ -r $GF_DOMAIN_DIR/domain1 ]
then
	if [ $# -eq 1 ]
	then
		# no domain specified use default domain
		domain=$DEFAULT_DOMAIN
	else			
		# get to the last parameter which specifies domain
		for i in $@ 
		do 
			domain="$i"
		done
	fi
  	case "$1" in
	stop-domain)
		 $GLASSFISH_HOME/bin/asadmin stop-domain --domaindir $GF_DOMAIN_DIR $domain 
                 ;;
	start-domain)
		$GLASSFISH_HOME/bin/asadmin start-domain --domaindir $GF_DOMAIN_DIR $domain 
                ;;
	delete-domain)
		$GLASSFISH_HOME/bin/asadmin delete-domain --domaindir $GF_DOMAIN_DIR $domain 
                ;;
        "")
                echo $"usage: asadmin {start-domain|stop-domain|delete-domain|<command>..}" 
                ;;
	*) 
                $GLASSFISH_HOME/bin/asadmin "$@" 
                ;;
	esac
else	
	# Create a new domain and start it. Domain is under $HOME/glassfishv2
	echo GlassFish Default Domain Not Present
        echo Creating in $GF_DOMAIN_DIR/domain1
	if [ ! -r $GF_DOMAIN_DIR ]
	then
		mkdir $GF_DOMAIN_DIR
	fi
	# creating domain
        echo Provide admin port for $DEFAULT_DOMAIN : 
        read answer
        echo Creating domain domain1 @ admin port $answer 
	$GLASSFISH_HOME/bin/asadmin create-domain --domaindir $GF_DOMAIN_DIR --adminport $answer --user $ADMIN_USER --passwordfile $ADMIN_PASSWORD_FILE $DEFAULT_DOMAIN
        result=$?
        if [ $result -eq 0 ]; then
            # starting the domain
            echo Starting GlassFish domain1 
            $GLASSFISH_HOME/bin/asadmin start-domain --domaindir $GF_DOMAIN_DIR $DEFAULT_DOMAIN
        fi
fi
