postinst is in erlang-base 1:18.3-dfsg-1ubuntu3.1.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | #! /bin/sh
# postinst script for erlang-base
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> configure <most-recently-configured-version>
# * <old-postinst> abort-upgrade <new-version>
# * <conflictor's-postinst> abort-remove in-favour <package> <new-version>
# * <postinst> abort-remove
# * <deconfigured's-postinst> abort-deconfigure in-favour <failed-install-package> <version> \
# removing <conflicting-package> <version>
# for details, see /usr/doc/packaging-manual/
#
# quoting from the policy:
# Any necessary prompting should almost always be confined to the
# post-installation script, and should be protected with a conditional
# so that unnecessary prompting doesn't happen if a package's
# installation fails and the <postinst> is called with abort-upgrade,
# abort-remove or abort-deconfigure.
case "$1" in
abort-upgrade|abort-remove|abort-deconfigure)
;;
configure)
# Create epmd user
adduser --quiet --system --group --no-create-home --home /var/run/epmd epmd
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
# Automatically added by dh_installmenu
if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
update-menus
fi
# End automatically added section
# Automatically added by dh_systemd_enable
if deb-systemd-helper debian-installed epmd.service; then
# This will only remove masks created by d-s-h on package removal.
deb-systemd-helper unmask epmd.service >/dev/null || true
if deb-systemd-helper --quiet was-enabled epmd.service; then
# Create new symlinks, if any.
deb-systemd-helper enable epmd.service >/dev/null || true
fi
fi
# Update the statefile to add new symlinks (if any), which need to be cleaned
# up on purge. Also remove old symlinks.
deb-systemd-helper update-state epmd.service >/dev/null || true
# End automatically added section
# Automatically added by dh_systemd_enable
if deb-systemd-helper debian-installed epmd.socket; then
# This will only remove masks created by d-s-h on package removal.
deb-systemd-helper unmask epmd.socket >/dev/null || true
if deb-systemd-helper --quiet was-enabled epmd.socket; then
# Create new symlinks, if any.
deb-systemd-helper enable epmd.socket >/dev/null || true
fi
fi
# Update the statefile to add new symlinks (if any), which need to be cleaned
# up on purge. Also remove old symlinks.
deb-systemd-helper update-state epmd.socket >/dev/null || true
# End automatically added section
case "$1" in
configure)
if [ -z "$2" ] || dpkg --compare-versions "$2" ge-nl "1:10.b.10-3" ; then
echo -n "Searching for services which depend on erlang and should be started..."
# find all init scripts and packages they belong
inits=$(dpkg -S '/etc/init.d/*' 2>/dev/null | sed -e's:/etc/init.d/::')
# filter the list of the packages
packs=$(echo $inits | sed -e's/:[[:space:]]\+[^[:space:]]*//g' | sed -e's/ /\n/g' | sort -u)
# find packages, which depend on erlang
packs=$(dpkg -s $packs 2>/dev/null | egrep '^Package:|^Status:|^Depends' | awk '{if ($1 ~ /^Package:/) {package=$2;inst=0} else if ($0 ~ /^Status:.* installed$/) {inst=1} else if ((inst==1) && ($0 ~ /^Depends:.* erlang/)) {print package}}')
# construct services list from the packages
services=""
for p in $packs ; do
service=$(echo $inits | sed -e's/\([^:]\) /\1\n/g' | awk "/^$p:/ {print \$2}")
services="$services $service"
done
services=$(echo $services | tr '\n' ' ' | sed -e's/\(^[[:space:]]*\|[[:space:]]*$\)//g')
if [ -z "$services" ] ; then
echo "none found."
else
echo "found: $services."
echo "Starting services which depend on erlang"
rl=$(runlevel | awk '{print $2}')
failed=""
for service in $services ; do
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
idl="invoke-rc.d ${service}"
elif [ -f /usr/share/file-rc/rc -o -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ] ; then
idl=$(filerc $rl $service)
else
idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1)
fi
if [ -n "$idl" ] ; then
echo -n " $service: starting..."
if $idl start > /dev/null 2>&1 ; then
echo "done."
else
echo "failed. ($?)"
failed="$failed $service"
fi
fi
done
if [ -n "$failed" ] ; then
echo "The following services failed to start: $failed."
echo
echo "You will need to start them manually by running \`invoke-rc.d <service> start'"
echo "If the service still fails to start, you may need to file a bug on"
echo "\`erlang' package or the service involved."
else
echo "Services started successfully."
fi
fi
fi
;;
esac
exit 0
|