#!/bin/sh

set -e

chrooted() {
	# borrowed from udev's postinst
	if [ "$(stat -c %d/%i /)" = "$(stat -Lc %d/%i /proc/1/root 2>/dev/null)" ]; then
		# the devicenumber/inode pair of / is the same as that of
		# /sbin/init's root, so we're *not* in a chroot and hence
		# return false.
		return 1
	fi
	return 0
}

case "$1" in
	install)
		mkdir -p /etc/initramfs-tools/conf.d

		# First time install.  Can we autodetect the RESUME partition?
		if [ -r /proc/swaps ]; then
			RESUME=$(tail -n $(($(wc -l /proc/swaps | awk ' { print $1 } ') - 1)) /proc/swaps | sort -rk3 | head -n 1 | awk ' { print $1 } ')
			if command -v vol_id >/dev/null 2>&1; then
				UUID=$(vol_id -u "$RESUME" || true)
			elif [ -x /lib/udev/vol_id ]; then
				UUID=$(/lib/udev/vol_id -u "$RESUME" || true)
			fi
			if [ -n "$UUID" ]; then
				RESUME="UUID=$UUID"
			fi
		fi

		# write conf.d/resume if not in a chroot
		if [ -n "${RESUME}" ] && ! chrooted; then
			echo "RESUME=${RESUME}" > /etc/initramfs-tools/conf.d/resume
		fi

	;;
esac


