#!/bin/sh
set -e
sgmlbase=/usr/lib/sgml
state=""
package=""
version=""

for i in $*; do
  case $state in
	"")
	  case $i in
	  --install) state="--install" ; action="install";;
	  --remove) state="--remove"   ; action="remove";;
	  --sgmlbase) state="--sgmlbase" ;;
	  --version) state="--version" ;;
	  *) cat <<__USAGE__
Usage:
 --install pkg:		installs pkg.cat in CATALOG
 --remove pkg:		removes pkg.cat from CATALOG
 --version ver:		qualify version of package
 --sgmlbase path:	changes directory for pkg.cat and CATALOG
__USAGE__
 exit 0
 ;;
	  esac
	;;
	--install) state="" ; package=$i ;;
	--remove) state="" ; package=$i ;;
	--sgmlbase) state="" ; sgmlbase=$i;;
	--version) state="" ; version=$i ;;
  esac
done

echo "install-catalog: $action of $package DTD"

cat=$sgmlbase/CATALOG

SBEG=" -- start $package $version"
SEND=" -- end $package $version"

case $action in
  install)
	if grep "$SBEG" $cat > /dev/null 2>/dev/null
	then
	  echo "$package DTD already in catalog"
	else
	  echo "adding $package DTD to catalog"
	(echo "$SBEG -- ";
	 cat $sgmlbase/$package.cat ;
	 echo "$SEND -- ") >> $cat
	fi
  ;;
  remove)
	if grep -q "$SBEG" $cat
	then
	  echo "removing $package$version DTD from catalog"
          sed -e "/$SBEG/,/$SEND/d" < $cat > ${cat}.new
                mv ${cat}.new ${cat}
	else
	  echo "No $package$version DTD found in catalog"
	fi
  ;;
  *) echo "install-catalog: Invalid action $action"; exit 1 ;;
esac
