#! /bin/sh
# postinst.skeleton
# Skeleton maintainer script showing all the possible cases.
# Written by Charles Briscoe-Smith, March-June 1998.  Public Domain.

# Abort if any command returns an error value
set -e

# This script is called as the last step of the installation of the
# package.  All the package's files are in place, dpkg has already done
# its automatic conffile handling, and all the packages we depend of
# are already fully installed and configured.

# The following idempotent stuff doesn't generally need protecting
# against being run in the abort-* cases.

# Install info files into the dir file
: install-info --quiet --section "section pattern" "Section Title" \
:              --description="Name of the document" /usr/info/foo.info

# Create stub directories under /usr/local
: if test ! -d /usr/local/lib/foo; then
:   if test ! -d /usr/local/lib; then
:     if mkdir /usr/local/lib; then
:       chown root.staff /usr/local/lib || true
:       chmod 2775 /usr/local/lib || true
:     fi
:   fi
:   if mkdir /usr/local/lib/foo; then
:     chown root.staff /usr/local/lib/foo || true
:     chmod 2775 /usr/local/lib/foo || true
:   fi
: fi

# Ensure the menu system is updated
: [ ! -x /usr/bin/update-menus ] || /usr/bin/update-menus

# Arrange for a daemon to be started at system boot time
: update-rc.d foo default >/dev/null

case "$1" in
  configure)
    # Configure this package.  If the package must prompt the user for
    # information, do it here.
    :

    # Activate menu-methods script
    : chmod a+x /etc/menu-methods/foo

    # Update ld.so cache
    : ldconfig

    # Make our version of a program available
    : update-alternatives \
    :       --install /usr/bin/program program /usr/bin/alternative 50 \
    :       --slave /usr/share/man/man1/program.1.gz program.1.gz \
    :               /usr/share/man/man1/alternative.1.gz

    # Tell ucf that the file in /usr/share/foo is the latest
    # maintainer version, and let it handle how to manage the real
    # confuguration file in /etc. This is how a static configuration
    # file can be handled:
    ucf /usr/share/foo/configuration /etc/foo.conf
    ucfr foo /etc/foo.conf

    ### We could also do this on the fly. The following is from Tore
    ### Anderson:

    #. /usr/share/debconf/confmodule

    ### find out what the user answered.
    #  db_get foo/run_on_boot
    #  run_on_boot=$RET
    #  db_stop

    ### safely create a temporary file to generate our suggested
    ### configuration file.
    #    tempfile=`tempfile`
    #    cat << _eof > $tempfile
    ### Configuration file for Foo.

    ### this was answered by you, the user in a debconf dialogue
    #  RUNONBOOT=$run_on_boot

    ### this was not, as it has a sane default value.
    #  COLOUROFSKY=blue

    #_eof

    ### Note that some versions of debconf do not release stdin, so
    ### the following invocation of ucf may not work, since the stdin
    ### is never connected to ucfr.

    ### now, invoke ucf, which will take care of the rest, and ask
    ### the user if he wants to update his file, if it is modified.
    #ucf $tempfile /etc/foo.conf

    ### done! now we'll just clear up our cruft.
    #rm -f $tempfile


    # There are three sub-cases:
    if test "${2+set}" != set; then
      # We're being installed by an ancient dpkg which doesn't remember
      # which version was most recently configured, or even whether
      # there is a most recently configured version.
      :

    elif test -z "$2" -o "$2" = "<unknown>"; then
      # The package has not ever been configured on this system, or was
      # purged since it was last configured.
      :

    else
      # Version $2 is the most recently configured version of this
      # package.
      :

    fi ;;
  abort-upgrade)
    # Back out of an attempt to upgrade this package FROM THIS VERSION
    # to version $2.  Undo the effects of "prerm upgrade $2".
    :

    ;;
  abort-remove)
    if test "$2" != in-favour; then
      echo "$0: undocumented call to \`postinst $*'" 1>&2
      exit 0
    fi
    # Back out of an attempt to remove this package, which was due to
    # a conflict with package $3 (version $4).  Undo the effects of
    # "prerm remove in-favour $3 $4".
    :

    ;;
  abort-deconfigure)
    if test "$2" != in-favour -o "$5" != removing; then
      echo "$0: undocumented call to \`postinst $*'" 1>&2
      exit 0
    fi
    # Back out of an attempt to deconfigure this package, which was
    # due to package $6 (version $7) which we depend on being removed
    # to make way for package $3 (version $4).  Undo the effects of
    # "prerm deconfigure in-favour $3 $4 removing $6 $7".
    :

    ;;
  *) echo "$0: didn't understand being called with \`$1'" 1>&2
     exit 0;;
esac

exit 0
