postinst is in uswsusp 1.0+20110509-2ubuntu1.
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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | #!/bin/bash
#
# uswsusp.postinst -- postinst script for uswsusp debian package
#
# Copyright 2006 Tim Dijkstra <tim@famdijkstra.org>
# Released under GPLv2
set -e
. /usr/share/debconf/confmodule
CONFIGFILE=/etc/uswsusp.conf
LOWQ="snapshot_device compute_checksum compress early_writeout image_size suspend_loglevel max_loglevel"
MEDQ="resume_device encrypt splash"
HIGHQ=""
NOTQ="RSA_key_file shutdown_method resume_offset"
case "$1" in
# abort-upgrade happens if on upgrade new and old prerm fail
configure)
db_fget uswsusp/no_swap hit
[ "$RET" = "false" ] || exit 0;
db_fget uswsusp/no_snapshot hit
[ "$RET" = "false" ] || exit 0;
# If we don't have /proc or /sys we can't work, this will probably
# be a chroot or so.
mountpoint -q /sys || exit 0;
mountpoint -q /proc || exit 0;
# We skip calculating offset if the user agreed to continue
# without swap
db_fget uswsusp/continue_without_swap hit
if [ "$RET" != "true" ]; then
# swap-offset returns only something for a swap file
# Effectively we're also resetting offset in case of a partition
db_get uswsusp/resume_device
dname=$RET
db_set uswsusp/resume_offset $(swap-offset $dname 2> /dev/null | cut -c17-)
# We have to translate the devid to a device file.
if [ "$(awk '$1=="'$dname'" {print $2}' /proc/swaps)" == "file" ];
then
if ! devid=$(stat -c "%d" $dname) ; then
# It is permissible for swap to be a regular file, which
# is typically not available in a chroot (and this script
# needs to work in chroots too).
echo "The swapfile $dname could not be found, exiting." >&1
exit 0
fi
devnode="/dev/"$(awk '$1=='$(($devid>>8))' && $2=='$(($devid&0x00ff))' {print $4}' /proc/partitions)
# This shouldn't happen that much...
if [ ! -b $devnode ]; then
echo "You have a strange /dev layout." >&1
echo "I couldn't find a node with devid $(($devid>>8)):$(($devid&0x00ff))" >&1
exit 0;
fi
db_set uswsusp/resume_device $devnode
fi
fi
if [ ! -f $CONFIGFILE -o ! -s $CONFIGFILE ]; then
echo "# $CONFIGFILE(5) -- Configuration file for s2disk/s2both " > $CONFIGFILE
fi
TMPFILE=`mktemp`
cp -f $CONFIGFILE $TMPFILE
SEDCMD=""
for I in $MEDQ $LOWQ $HIGHQ $NOTQ; do
db_get uswsusp/$I
VAL=$RET
db_metaget uswsusp/$I type
TYPE=$RET
if [ "boolean" = "$TYPE" ]; then
if [ "$VAL" = "true" ]; then
VAL="y";
else
VAL=
fi
fi
PATRN="^[[:space:]]*${I//_/ }[[:space:]]*[:=]"
# If we didn't got a value, we want the hardcoded default, so del
if [ -z "$VAL" ]; then
SEDCMD="$SEDCMD -e '/$PATRN/ d'"
# Else, rewrite the value
elif eval grep -q -e "'$PATRN'" $CONFIGFILE; then
SEDCMD="$SEDCMD -e 's/$PATRN.*$/${I//_/ } = ${VAL//\//\\/}/'"
# Or add it
else
SEDCMD="$SEDCMD -e '$ a ${I//_/ } = $VAL'"
fi
done
eval sed $SEDCMD < $CONFIGFILE > $TMPFILE
eval cat $TMPFILE > $CONFIGFILE
eval rm $TMPFILE
db_get uswsusp/create_RSA_key
VAL=$RET
if [ "$VAL" = "true" ]; then
db_get uswsusp/RSA_key_bits
BITS=$RET
db_get uswsusp/RSA_key_file
KEYFILE=$RET
db_get uswsusp/RSA_passphrase
PASS=$RET
if [ -n "$BITS" ] && [ -n "$KEYFILE" ] && [ -n "$PASS" ]; then
echo "Generating RSA key, this may take a while ..."
suspend-keygen <<EOFa &> /dev/null
$BITS
$PASS
$PASS
$KEYFILE
EOFa
else
echo "One of the arguments to suspend-keygen was empty!"
echo "No key generated!"
fi
db_reset uswsusp/RSA_passphrase
db_reset uswsusp/RSA_passphrase_v
fi
if [ -x /usr/sbin/update-initramfs \
-a -e /etc/initramfs-tools/initramfs.conf ]; then
update-initramfs -u;
fi
# Make snapshot device if they choose /dev/snapshot
db_get uswsusp/snapshot_device
VAL=$RET
if [ -z "$VAL" -a ! -c /dev/snapshot ] ; then
if [ -x /dev/MAKEDEV ] ; then
# Until MAKEDEV knows how to make it ...
DEV=`cat /sys/class/misc/snapshot/dev `
(cd /dev; ./MAKEDEV snapshot) || mknod /dev/snapshot c ${DEV%:*} ${DEV#*:}
else
echo "The config file is using snapshot device"
echo "But /dev/MAKEDEV do not exists!"
fi
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
exit 0
|