]> git.wh0rd.org - home.git/blob - .bin/umount-tree
-y: unmount w/out prompting
[home.git] / .bin / umount-tree
1 #!/bin/bash
2
3 if [[ -z $1 ]] ; then
4 echo "Usage: $0 <root>"
5 exit 1
6 fi
7
8 prompt=true
9 case $1 in
10 -y) prompt=false; shift;;
11 esac
12
13 while [[ $# -gt 0 ]] ; do
14
15 root=$1
16 shift
17
18 mounts=$(gawk -v p="${root%/}" '$2 ~ "^"p { print $2 }' /proc/mounts | tac)
19 if [[ -z ${mounts} ]] ; then
20 echo "No mounts found ..."
21 echo
22 mount
23 continue
24 fi
25
26 echo "Unmounting: "
27 printf '\t%s\n' ${mounts}
28
29 if ${prompt} ; then
30 printf "OK? [y/N] "
31 read v
32 else
33 v=y
34 fi
35 [[ ${v} == "y" ]] && sudo umount -v ${mounts}
36
37 done