I'm embarrased that I sent this iteration of the patch. I was just eager to make the suggested changes. I didn't even test it. I have a test suite for this purpose; why the hell didn't I run it before sending?
+ # sequence of "key value key value...". Unfortunately, both
There should be no comma there. I fixed it in the commit message, but not the code comment.
+ path=$(awk -v id="$1" '$1 == id { sub($1 FS, ""); print }' <<<"$all")
That should be `id="$id"`, not `id="$1"`.
+ subvolumes="$(btrfs_subvolume_list "$dir")" || return + for read -r subvolume; do + btrfs subvolume delete "$dir/$subvolume" || return + done <<<"$subvolumes"
1. Stupid copy-pasto; that should be `while` instead of `for`. 2. I used a subshell and a variable rather than a pipe to make sure that if `btrfs_subvolume_list`, we find out about it before deleting anything. But, because `$(...)` trims trailing whitespace, and `<<<` adds a trailing newline, this doesn't work for the common case of there being no subvolumes to delete. -- Happy hacking, ~ Luke Shumaker