#!/bin/bash

USAGE=" $0 [-f Force]"
GST_PACK="/usr/bin/env gst-package"
GST="/usr/bin/env gst"
CURR_DIR=`pwd`
PACK_BUILDER=$CURR_DIR"/scripts/PackageBuilder.st"
FORCE=0

while getopts :fh o
do        case "$o" in
        f) 	  FORCE=1;;
        h)    echo "Usage:"
              echo $USAGE
                exit 1;;
        esac
done


echo "Packaging in $CURR_DIR ..." > make_packages.log
for i in `find . -name package.st`
do
	echo "$i"
	DIR=`dirname $i`
	cd $DIR
	REGEN=0
	for FILE in "package.st" `grep filein: package.st | sed -r -e "s/^[ 	]*filein:[ 	]*'(.*)';/\1/"`
	do
		if [ $FILE -nt package.xml ]
		then
			echo "  $FILE changed"
			REGEN=1
		fi
	done

	if [ $REGEN -eq 1 ]||[ $FORCE -eq 1 ]
	then
		echo "  building package.xml"
		$GST $PACK_BUILDER -a package.st > package.xml
	fi

	cd $CURR_DIR

    if [ $REGEN -eq 1 ]||[ $FORCE -eq 1 ]
    then
	echo "  packaging..."
	$GST_PACK -t ~/.st $DIR/package.xml >> make_packages.log
    fi
done
