post_install() {
  if [ -e etc/xml/catalog.preserve ]; then
    mv etc/xml/catalog.preserve etc/xml/catalog
  elif [ ! -e etc/xml/catalog ]; then
    xmlcatalog --noout --create etc/xml/catalog
  fi
  xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//ENTITIES DocBook XML" \
    "file:///etc/xml/docbook-xml" \
    etc/xml/catalog
  xmlcatalog --noout --add "delegatePublic" \
    "-//OASIS//DTD DocBook XML" \
    "file:///etc/xml/docbook-xml" \
    etc/xml/catalog
  xmlcatalog --noout --add "delegateSystem" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook-xml" \
    etc/xml/catalog
  xmlcatalog --noout --add "delegateURI" \
    "http://www.oasis-open.org/docbook/" \
    "file:///etc/xml/docbook-xml" \
    etc/xml/catalog
}

# arg 1:  the new package version
# arg 2:  the old package version
pre_upgrade() {
  if [ $(vercmp $2 4.5) -lt 0 ]; then
    xmlcatalog --del "file:///etc/xml/docbook" etc/xml/catalog > etc/xml/catalog.preserve
  fi
}

post_upgrade() {
  if [ $(vercmp $2 4.5) -ge 0 ]; then
    post_remove
  fi
  post_install
}

post_remove() {
  xmlcatalog --noout --del file:///etc/xml/docbook-xml etc/xml/catalog
}

op=$1
shift
$op $*