#! /bin/bash

if [ $# -lt 2 ]
then
    echo "Usage:"
    echo "        compdic-update-cats <catfile> <difference> <difference> ..."
    echo "where"
    echo "    <catfile>    - file containing the list morphosyntactic categories"
    echo "    <difference> - diff-format file containing lines to be added to/removed from dictionary"
    exit 0
fi	

tempdir=`mktemp -d /tmp/compdic.XXXXXX`

cats=$1
shift

catplus=$tempdir/plus.cat
catminus=$tempdir/minus.cat
cattmp=$tempdir/tmp.cat

touch $catplus
touch $catminus

while (($#))
do
    echo processing $1 ...
    cat $1 | egrep '^>' | sed -r 's/^> *//;s/[[:space:]].*$//' | cut -d ',' -f 2 | sort -u | canonize >> $catplus
    cat $1 | egrep '^<' | sed -r 's/^< *//;s/[[:space:]].*$//' | cut -d ',' -f 2 | sort -u | canonize >> $catminus
    shift
done

echo updating $cats ...
# comm -23 $cats $catminus > $cattmp
# mv ${cats} ${cats}~
# cat $cattmp $catplus | sort -u > $cats

cat $cats $catplus | sort -u > $cattmp

mv ${cats} ${cats}~
mv ${cattmp} ${cats}
chmod a+r ${cats}

rm -r $tempdir
