#!/bin/bash
# this script runs a command in builddir specified on the command line
# $1 = dir (flavour), determined as otb dir + flavour

SRC=`pwd`

while ! test -f source-tree-root; do
	cd ..
	test `pwd` = "/" && break;
done

ROOT=`pwd`
SUB=`echo $SRC | sed -e "s,^$ROOT,,"`

echo "ROOT=$ROOT, SUB=$SUB"

w="$1"
if echo $w | grep -q '^:'; then
	shift
	w=`echo $w | cut -c2-`
else
	w=default
fi

if test -n "$OTB_REPLACEMENT"; then
	if test "$ROOT" = "/"; then
		OTB=`echo $SRC | sed -e "$OTB_REPLACEMENT; s,\$,/$w,;"`
	else
		OTB=`echo $ROOT | sed -e "$OTB_REPLACEMENT; s,\$,/$w$SUB,;"`
	fi
else
	echo "you need to set OTB_REPLACEMENT for otb to work"
	exit 1
fi

echo "OTB=$OTB"
DIR="$OTB"

#shift
CMD="$COMMAND $@"

n=0
# find 
while test "$a" = "$b"; do
    n=$(($n+1))
    a=`echo $DIR | cut -d/ -f-$n`
    b=`echo $SRC | cut -d/ -f-$n`
done
a="`echo $DIR | cut -d/ -f$n- | sed -e s,[^/]*,..,g`"
b="`echo $SRC | cut -d/ -f$n-`"
rel="$a/$b"

mkdir -p $DIR # ensure our dir exists
CMD=`echo $CMD | sed -e "s,SOURCEDIR,$rel,"`
echo "otb-run: running '$CMD' in $DIR" # tell user what's going on

cd $DIR
$CMD
retval=$?
cd $rel
exit $retval
