#! /bin/sh

export PATH=/afs/slac/g/lcls/package/python/python2.7.9/linux-x86_64/bin:$PATH
export LD_LIBRARY_PATH=/afs/slac/g/lcls/package/python/python2.7.9/linux-x86_64/lib:$LD_LIBRARY_PATH

. "`pwd`/scripts/array"

expandYaml () {
  for i in $( cat $DIR/$1 | grep -hv ^[[:space:]]*# | tr ' ' '\n' | grep .yaml ); do
    dos2unix $DIR/$i
    expandYaml $i
  done
  arr=$(array_append "$arr" "$DIR/$1" )
  return 0
}

while [[ $# -gt 1 ]]
do
key="$1"

case $key in
    -a)
    IP_ADDR="$2"
    shift # past argument
    ;;
    -t)
    TAR_FILE="$2"
    shift # past argument
    ;;
    *)
            # unknown option
    ;;
esac
shift
done

TEMP_DIR=/tmp/testing
rm -rf $TEMP_DIR
mkdir -p $TEMP_DIR

tar -zxf  $TAR_FILE -C $TEMP_DIR

#declare -a arr
PROJ_DIR=$(ls /tmp/testing)
DIR=$TEMP_DIR/$PROJ_DIR

#echo $DIR

#rm -rf $DIR/merge.yaml
#rm -rf $DIR/system.yaml
dos2unix $DIR/000TopLevel.yaml
expandYaml 000TopLevel.yaml
#sort for unique elements, don't change order
arr1=$(echo $arr | tr [:space:] '\n' | awk '!a[$0]++')


#echo "$arr" | while IFS= read element; do 
#  cat "$(echo "$element" | array_element_decode)" >> $DIR/merge.yaml 
#  printf '\n' >> $DIR/merge.yaml
#done
IFS_ORIG=$IFS
IFS=' '
echo $arr1 | while IFS= read element; do
  cat $element >> $DIR/merge.yaml;
  printf '\n' >> $DIR/merge.yaml
##  echo -e '\n' >> $DIR/merge.yaml
done
IFS=$IFS_ORIG
ret=$(python scripts/expand_yaml.py -f $DIR/merge.yaml -s $DIR/system.yaml)

printf "%s " $ret
printf "\n"

if [ -n $IP_ADDR ]; then
  bin_rt/ControlServerApp -f $DIR/system.yaml
else
  bin_rt/ControlServerApp -a $IP_ADDR -f $DIR/system.yaml
fi
