index : devtools32 | |
Archlinux32 fork of devtools | gitolite user |
summaryrefslogtreecommitdiff |
author | Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> | 2017-03-07 20:14:50 +0100 |
---|---|---|
committer | Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> | 2017-03-07 20:39:11 +0100 |
commit | eec7fcf965763d5395c336f92cd56b193d054947 (patch) | |
tree | aa5054fbc735c86c8cfce83ef7f528e5d6781fdc /lib | |
parent | c53a3e80170dc9d45beeeb623edfbf0bd40799a7 (diff) |
-rw-r--r-- | lib/archroot.sh | 20 |
diff --git a/lib/archroot.sh b/lib/archroot.sh index 14417aa..989f1e1 100644 --- a/lib/archroot.sh +++ b/lib/archroot.sh @@ -20,3 +20,23 @@ check_root() { is_btrfs() { [[ -e "$1" && "$(stat -f -c %T "$1")" == btrfs ]] } + +## +# usage : subvolume_delete_recursive( $path ) +# +# Find all btrfs subvolumes under and including $path and delete them. +## +subvolume_delete_recursive() { + local subvol + + is_btrfs "$1" || return 0 + + while IFS= read -d $'\0' -r subvol; do + if ! btrfs subvolume delete "$subvol" &>/dev/null; then + error "Unable to delete subvolume %s" "$subvol" + return 1 + fi + done < <(find "$1" -xdev -depth -inum 256 -print0) + + return 0 +} |