remove mounts automatically
Also combined all these little mount and cleanup helpers into one `cleanup` script with flags.
This commit is contained in:
+90
@@ -0,0 +1,90 @@
|
||||
#!/bin/sh
|
||||
|
||||
if test `id -u` -ne 0
|
||||
then
|
||||
echo "$0 must be run as root."
|
||||
return
|
||||
fi
|
||||
|
||||
FRESH=clean_environment
|
||||
ROOT=test_environment
|
||||
|
||||
add_mount() {
|
||||
if mountpoint "$ROOT$1" > /dev/null
|
||||
then
|
||||
echo "$ROOT$1 already mounted."
|
||||
else
|
||||
echo "Mounting $1 to $ROOT$1"
|
||||
mkdir -p "$ROOT$1"
|
||||
mount -o bind "$1" "$ROOT$1"
|
||||
fi
|
||||
}
|
||||
|
||||
remove_mount() {
|
||||
if mountpoint "$ROOT$1" > /dev/null
|
||||
then
|
||||
echo "Unmounting $ROOT$1"
|
||||
umount "$ROOT$1"
|
||||
fi
|
||||
}
|
||||
|
||||
add_mounts() {
|
||||
add_mount /proc
|
||||
add_mount /sys
|
||||
add_mount /dev
|
||||
add_mount /dev/pts
|
||||
}
|
||||
|
||||
remove_mounts() {
|
||||
remove_mount /dev/pts
|
||||
remove_mount /dev
|
||||
remove_mount /sys
|
||||
remove_mount /proc
|
||||
}
|
||||
|
||||
remove_environment() {
|
||||
if test -d "$ROOT"
|
||||
then
|
||||
# Call this script that automatically unmounts the mount points too.
|
||||
remove_mounts
|
||||
echo "Removing $ROOT"
|
||||
rm -r "$ROOT"
|
||||
else
|
||||
echo "No environment found at $ROOT. Doing nothing."
|
||||
fi
|
||||
}
|
||||
|
||||
remove_everything() {
|
||||
if test -d "$ROOT"
|
||||
then
|
||||
# Call this script that automatically unmounts the mount points too.
|
||||
remove_environment
|
||||
fi
|
||||
|
||||
if test -d "$FRESH"
|
||||
then
|
||||
echo "Removing $FRESH"
|
||||
rm -r "$FRESH"
|
||||
fi
|
||||
|
||||
if test -d debootstrap
|
||||
then
|
||||
echo "Removing debootstrap"
|
||||
rm -r debootstrap
|
||||
fi
|
||||
|
||||
if test -f debootstrap.tar.gz
|
||||
then
|
||||
echo "Removing debootstrap.tar.gz"
|
||||
rm debootstrap.tar.gz
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
everything) remove_everything ;;
|
||||
mounts) remove_mounts ;;
|
||||
add_mounts) add_mounts ;;
|
||||
environment) remove_environment ;;
|
||||
"") remove_environment ;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user