#!/bin/sh

# loopCmd -- execute command as loop
# version:1.0
# March. 30 2006
# Gouichi Iisaka <iisaka51@hotmail.com>

USAGE() {
    echo "Usage: loop [-F nodegroup] command_line"
    echo "        @H@ replace to hostname in command_line"
}

OPTIONS=`/usr/bin/getopt 'DF:' "$@"`
# Note the quotes around '$OPTIONS': they are essential!
eval set -- '$OPTIONS'

OPT_PORT=""
OPT_USER=""
DEBUG=""

CONFDIR=/usr/local/share/ScatterCmd
NODEFILE=${CONFDIR}/nodefile

while true :
do
    case "$1" in
        -D) DEBUG="ON" ; shift ;;
        -F) NODEFILE=${CONFDIR}/$2 ; shift 2 ;;
        --) shift ; break ;;
        *) USAGE ; exit 1 ;;
    esac
done

[ "$DEBUG" = "ON" ] && {
    set -x
    echo "ARGV: $#"
    echo "ARGS: $@"
}

CMDLINE=$@

case $# in
0)	USAGE ; exit ;;
esac

[ -f ${NODEFILE} ] || {
	echo "${NODEFILE}: no such file or directory." 1>&2
	exit
}


for H in `cat ${NODEFILE}`
do
	NEWCMD=`echo ${CMDLINE} | sed -e "s/@H@/${H}/"`
	eval $NEWCMD
done

exit $RETVAL
