summaryrefslogtreecommitdiffstats
path: root/debian/cryptsetup-initramfs.prerm
diff options
context:
space:
mode:
Diffstat (limited to 'debian/cryptsetup-initramfs.prerm')
-rw-r--r--debian/cryptsetup-initramfs.prerm29
1 files changed, 29 insertions, 0 deletions
diff --git a/debian/cryptsetup-initramfs.prerm b/debian/cryptsetup-initramfs.prerm
new file mode 100644
index 0000000..48fa691
--- /dev/null
+++ b/debian/cryptsetup-initramfs.prerm
@@ -0,0 +1,29 @@
+#! /bin/sh
+
+set -e
+
+. /usr/share/debconf/confmodule
+
+case "$1" in
+ remove)
+ if grep -q '^dm_mod\s' /proc/modules; then
+ # XXX we overshoot here, only devices that need to be present at
+ # initramfs stage need to be checked here
+ cryptmap="$(dmsetup table --target crypt | sed -n 's/:.*//p' | tr '\n' ' ')"
+ if [ -n "$cryptmap" ]; then
+ db_fset cryptsetup-initramfs/prerm_active_mappings seen false
+ db_subst cryptsetup-initramfs/prerm_active_mappings cryptmap "$cryptmap"
+ db_input high cryptsetup-initramfs/prerm_active_mappings || true
+ db_go || true
+ db_get cryptsetup-initramfs/prerm_active_mappings
+ if [ "$RET" = "false" ]; then
+ exit 1
+ fi
+ fi
+ fi
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0