# HG changeset patch # User Rob Landley # Date 1289271989 21600 # Node ID a542c58a4c8e255ec4cfc308d12f7a694a85f8fb # Parent 6357653d921e08ef5dd57e76eae49d65aeae9cbd Add zapchroot script that unmounts everything under a directory. diff -r 6357653d921e -r a542c58a4c8e sources/root-filesystem/bin/zapchroot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/root-filesystem/bin/zapchroot Mon Nov 08 21:06:29 2010 -0600 @@ -0,0 +1,40 @@ +#!/bin/bash + +# Copyright 2010 Rob Landley licensed under GPLv2 + +if [ "$1" == "-d" ] +then + DELETE=1 + shift +fi + +# Clean up a chroot directory + +ZAP=$(readlink -f "$1" 2>/dev/null) + +if [ ! -d "$ZAP" ] +then + echo "usage: zapchroot [-d] dirname" + exit 1 +fi + +i="$(readlink -f "$(pwd)")" +if [ "$ZAP" == "${i:0:${#ZAP}}" ] +then + echo "Sanity check failed: cwd is under zapdir" >&2 + exit 1 +fi + +# Iterate through the second entry of /proc/mounts in reverse order + +for i in $(awk '{print $2}' /proc/mounts | tac) +do + # De-escape octal versions of space, tab, backslash, newline... + i=$(echo -e "$i") + + # Skip entries that aren't under our chroot + [ "$ZAP" != "${i:0:${#ZAP}}" ] && continue + + echo "Umounting: $i" + umount "$i" +done