#! /bin/sh
# $Id: updateModels 67777 2013-10-26 01:51:06Z cxh $
# Update models from the paper

book=$HOME/src/ealpapers/ptolemy
book=/home/hudson/jobs/ptbook/workspace
chapters=`cd $book; find . -type d -name Models`
for chapter in $chapters
do
    chapter=`dirname $chapter | sed 's@\./@@'`
    echo ""
    echo "Chapter: $chapter"
    #ls $book/$chapter/Models/*.xml
    modelDirectory=$book/$chapter/Models
    models=`cd $modelDirectory; find . -name "*.xml" | sort`
    for model in $models
    do
	# Some chapters (export, ptera) have models in subdirectories.
	# We flatten to subdirectory so as to make navigation easier.
	basemodel=`basename $model`
	if [ ! -f $chapter/$basemodel ]; then
	    echo "Copying $chapter/$model"
	    cp $modelDirectory/$model $chapter
        fi
    done	

    chapterModels=/tmp/updateModels.chapterModels.$$
    (cd $chapter; find . -name "*.xml" | sed 's@\./@@g' | xargs -n 1 basename | sort > $chapterModels)
    bookModels=/tmp/updateModels.bookModels.$$
    (cd $modelDirectory; find . -name "*.xml" | xargs -n 1 basename | sort > $bookModels)
    echo ""
    echo "$chapter models that are in the ptII tree, but not in the book:"
    comm -23 $chapterModels $bookModels
    

    # The egrep -v command removes any submodels from EXAMPLE_MODELS.
    (cd $chapter; find . -name "*.xml" | sort | grep -v './test/' | sed 's@\./@@g' |
	egrep -v '(GeneratorDiscreteInterface|GeneratorRegulatorProtector|Channel.xml)' |
    awk -v chapter=$chapter \
	' NR == 1 {
            print "# Automatically generated by ../updatedModels/"
	    print "CHAPTER=" chapter
	    printf "EXAMPLE_MODELS = "
        }
	{
	    printf("\\\n\t%s ", $1);
	}
	END { 
            print("\n");
            print "include ../chapter.mk"
        }' > makefile)
done
