154 lines
4.7 KiB
Bash
154 lines
4.7 KiB
Bash
#! /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
|