#!/bin/sh

##/***************************Copyright-DO-NOT-REMOVE-THIS-LINE**
##
## Condor Software Copyright Notice
## Copyright (C) 1990-2006, Condor Team, Computer Sciences Department,
## University of Wisconsin-Madison, WI.
##
## This source code is covered by the Condor Public License, which can
## be found in the accompanying LICENSE.TXT file, or online at
## www.condorproject.org.
##
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
## AND THE UNIVERSITY OF WISCONSIN-MADISON "AS IS" AND ANY EXPRESS OR
## IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
## WARRANTIES OF MERCHANTABILITY, OF SATISFACTORY QUALITY, AND FITNESS
## FOR A PARTICULAR PURPOSE OR USE ARE DISCLAIMED. THE COPYRIGHT
## HOLDERS AND CONTRIBUTORS AND THE UNIVERSITY OF WISCONSIN-MADISON
## MAKE NO MAKE NO REPRESENTATION THAT THE SOFTWARE, MODIFICATIONS,
## ENHANCEMENTS OR DERIVATIVE WORKS THEREOF, WILL NOT INFRINGE ANY
## PATENT, COPYRIGHT, TRADEMARK, TRADE SECRET OR OTHER PROPRIETARY
## RIGHT.
##
##***************************Copyright-DO-NOT-REMOVE-THIS-LINE**/


#
#  This is the condor_init script.  It creates all the necessary
#  files and directories on a host to run Condor.  
# 

# Where can I find the condor_config_val binary?
CONFIG_VAL_PATH="condor_config_val"

# Create soft link, as needed, to find the global config file.

# Be sure to get just the hostname without domain name.
HOSTNAME=`hostname | sed "s/\..*//g"`

# Find out who should own the Condor files.
OWNER=`$CONFIG_VAL_PATH -owner 2> /dev/null`
if [ ! -n "$OWNER" ]; then
   echo 'Error determining who should own the Condor-related directories.'
   echo 'Either create a "condor" account, or set the CONDOR_IDS environment'
   echo 'variable to the valid uid.gid pair that should be used by Condor.'
   exit 1
fi

# We need the -h option so we don't get an error if the local config
# file doesn't exist.
CONFIG_VAL="$CONFIG_VAL_PATH -h $HOSTNAME"

CONDOR_LOCALDIR=`$CONFIG_VAL LOCAL_DIR 2> /dev/null`
CONDOR_LOG=`$CONFIG_VAL LOG 2> /dev/null`
CONDOR_SPOOL=`$CONFIG_VAL SPOOL 2> /dev/null`
CONDOR_EXECUTE=`$CONFIG_VAL EXECUTE 2> /dev/null`
CONDOR_LOCALCFG=`$CONFIG_VAL LOCAL_CONFIG_FILE 2> /dev/null`
CONDOR_LOCK=`$CONFIG_VAL LOCK 2> /dev/null`

# Create a soft link to the global config file.  (Added by condor_install) 

if [ -n "$CONDOR_LOCALDIR" ]; then
	if [ ! -d $CONDOR_LOCALDIR ]; then
		echo "Creating $CONDOR_LOCALDIR"
		mkdir $CONDOR_LOCALDIR
		chmod 755 $CONDOR_LOCALDIR
		chown $OWNER $CONDOR_LOCALDIR
	fi
else
	echo "LOCAL_DIR is not defined, will not create"
fi

if [ -n "$CONDOR_LOG" ]; then
	if [ ! -d $CONDOR_LOG ]; then
		echo "Creating $CONDOR_LOG"
		mkdir $CONDOR_LOG 2> /dev/null
		if [ ! -d $CONDOR_LOG ]; then
			echo "Error creating $CONDOR_LOG"
			exit 1
		fi
		chmod 755 $CONDOR_LOG
		chown $OWNER $CONDOR_LOG
	else
		echo "$CONDOR_LOG already exists."
	fi
else
	echo "LOG is not defined here, fix this and try again."
	exit 1
fi

if [ -n "$CONDOR_SPOOL" ]; then

	CONDOR_SPOOL_PARENT=`echo $CONDOR_SPOOL | sed "s/\/[a-zA-Z]*$//g"`

	if [ ! -d $CONDOR_SPOOL_PARENT ]; then
		echo "Creating $CONDOR_SPOOL_PARENT"
		mkdir $CONDOR_SPOOL_PARENT
		chmod 755 $CONDOR_SPOOL_PARENT
	fi

	if [ ! -d $CONDOR_SPOOL ]; then
		echo "Creating $CONDOR_SPOOL"
		mkdir $CONDOR_SPOOL
		chmod 755 $CONDOR_SPOOL
		chown $OWNER $CONDOR_SPOOL
	else
		echo "$CONDOR_SPOOL already exists."
	fi
else
	echo "SPOOL is not defined, will not create."
fi

if [ -n "$CONDOR_EXECUTE" ]; then

	CONDOR_EXECUTE_PARENT=`echo $CONDOR_EXECUTE | sed "s/\/[a-zA-Z]*$//g"`

	if [ ! -d $CONDOR_EXECUTE_PARENT ]; then
		echo "Creating $CONDOR_EXECUTE_PARENT"
		mkdir $CONDOR_EXECUTE_PARENT
		chmod 755 $CONDOR_EXECUTE_PARENT
	fi

	if [ ! -d $CONDOR_EXECUTE ]; then
		echo "Creating $CONDOR_EXECUTE"
		mkdir $CONDOR_EXECUTE
		chmod 755 $CONDOR_EXECUTE
		chown $OWNER $CONDOR_EXECUTE
	else
		echo "$CONDOR_EXECUTE already exists."
	fi
else
	echo "EXECUTE is not defined, will not create."
fi

if [ -n "$CONDOR_LOCALCFG" ]; then
	if [ ! -f $CONDOR_LOCALCFG ]; then
		echo "Creating $CONDOR_LOCALCFG"
		touch $CONDOR_LOCALCFG 
		chmod 644 $CONDOR_LOCALCFG
	else 
		echo "$CONDOR_LOCALCFG already exists."
	fi
else
	echo "LOCAL_CONFIG_FILE is not defined, will not create."
fi

if [ -n "$CONDOR_LOCK" ]; then
	if [ ! -d $CONDOR_LOCK -a "$CONDOR_LOCK" != "$CONDOR_LOG" ];
	then
		echo "Creating $CONDOR_LOCK"
		mkdir $CONDOR_LOCK
		chmod 755 $CONDOR_LOCK
		chown $OWNER $CONDOR_LOCK
	fi
else
	echo "LOCK is not defined, will not create."
fi

echo "Condor has been initialized, but not started."
