This file is indexed.

postinst is in uswsusp 1.0+20120915-4ubuntu1.

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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#!/bin/bash
set -e

# uswsusp.postinst -- postinst script for uswsusp debian package
#
# Copyright 2006, 2007	Tim Dijkstra <tim@famdijkstra.org>
# Copyright 2012	Rodolfo Garc�a Pe�as <kix@kix.es>
#  04-2012 Full rewrited
# Released under GPLv2

. /usr/share/debconf/confmodule

CONFIGNAME=uswsusp.conf
CONFIGFILE=/etc/$CONFIGNAME
SWAPOFFSET=/usr/sbin/swap-offset

LOWQ="snapshot_device compute_checksum compress early_writeout image_size suspend_loglevel max_loglevel"
MEDQ="resume_device encrypt"
HIGHQ=""
NOTQ="RSA_key_file shutdown_method resume_offset"

# If we don't have /proc or /sys we can't work, this will probably
# be a chroot or so.
function check_filesystems
{
	mountpoint -q /sys || {
		echo "/sys not mounted. Can't create $CONFIGNAME" >> /dev/stderr;
		exit 0; }
	mountpoint -q /proc || {
		echo "/proc not mounted. Can't create $CONFIGNAME" >> /dev/stderr;
		exit 0; }
}


check_requirements()
{
	# Check if we have swap, else exit.
	db_fget uswsusp/no_swap hit
	[ "$RET" = "false" ] || exit 0;

	# Check if we have /dev/snapshot, else exit.
	db_fget uswsusp/no_snapshot hit
	[ "$RET" = "false" ] || exit 0;

	# Check if filesystems /proc and /sys are mounted
	check_filesystems
}

case "$1" in
	configure)
		# Check requirements to continue
		check_requirements

		# 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 $($SWAPOFFSET $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
		if [ "$RET" = "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
		if [ -z "$RET" -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



exit 0