#!/bin/sh

#
# zelta - Zelta shell wrapper
#
# Initialize the environment for Zelta subcommands

ZELTA_VERSION="Zelta Replication Suite v1.0"

: ${ZELTA_ETC:="/usr/local/etc/zelta"}
: ${ZELTA_ENV:="$ZELTA_ETC/zelta.env"}
: ${ZELTA_SNAP_NAME:="date -u +%Y-%m-%d_%H.%M.%S"}

if [ -r $ZELTA_ENV ]; then
       . $ZELTA_ENV
fi

: ${ZELTA_CONFIG:="$ZELTA_ETC/zelta.conf"}
: ${ZELTA_SHARE:="/usr/local/share/zelta"}
: ${AWK:="`which awk`"}

export ZELTA_ETC ZELTA_SHARE ZELTA_ENV ZELTA_CONFIG AWK
export ZELTA_SEND_FLAGS ZELTA_RECEIVE_FLAGS ZELTA_INTR_FLAGS ZELTA_DEPTH
export TIME_COMMAND ZELTA_SNAP_NAME ZELTA_RECEIVE_PREFIX 

AWKPRE="$AWK -f $ZELTA_SHARE"

# Try script name or symlink name as command, else use first argument
script_name=`echo $0 | sed 's-.*/--'`
if [ ! "zelta" = "$script_name" ]; then
	zelta_command="$script_name"
elif [ -n "$1" ]; then
	zelta_command="$1";
	shift;
fi

case $zelta_command in
	# Command synonyms
	zmatch)		$AWKPRE/zelta-match.awk -- "$@" ;;
	zp)		$AWKPRE/zelta-policy.awk -- "$@" ;;
	zpull)		$AWKPRE/zelta-replicate.awk -- "$@" ;;
	zpush)		$AWKPRE/zelta-replicate.awk -- "$@" ;;
	zeport)		$AWKPRE/zelta-report.awk -- "$@" ;;
	# "zelta replicate" variants
	backup)		$AWKPRE/zelta-replicate.awk -- -sI "$@" ;;
	clone)		$AWKPRE/zelta-replicate.awk -- --clone "$@" ;;
	sync)		$AWKPRE/zelta-replicate.awk -- -i "$@" ;;
	# Utilities
	snapshot)	echo "$@" | $AWKPRE/zelta-snapshot.awk ;;
	endpoint)	echo "$@" | $AWKPRE/zelta-endpoint.awk ;;
	time)		"$@" | bash -c "time -p cat" ;;
	# Info
	-V|--version)	echo $ZELTA_VERSION; exit ;;
	version)	echo $ZELTA_VERSION; exit ;;
	help)		. $ZELTA_SHARE/zelta-usage.sh "$@" ;;
	-?|usage)	"$ZELTA_SHARE/zelta-usage.sh" "$zelta_command" "$@" ;;
	# Matching script name action
	*)	if [ -r "$ZELTA_SHARE/zelta-$zelta_command.awk" ]; then
			$AWKPRE/zelta-$zelta_command.awk -- "$@"
		else
			"$ZELTA_SHARE/zelta-usage.sh" usage "$zelta_command" "$@"
		fi ;;
esac
