summaryrefslogtreecommitdiff
path: root/dot
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2019-07-23 13:17:41 -0400
committerAndrew Cady <d@jerkface.net>2019-07-23 13:17:41 -0400
commit0d75f1a3e3b64e73b5d3d4bd8618abba5f534a96 (patch)
tree53476881d91680cdc652d53204b393275d33bf28 /dot
parent6b4a6ffbce738d56a7c91328342cbb51c1c50cfc (diff)
fix nasty bug in 'subvolify'
If the argument ends in /, it would break.
Diffstat (limited to 'dot')
-rw-r--r--dot/bashrc17
1 files changed, 9 insertions, 8 deletions
diff --git a/dot/bashrc b/dot/bashrc
index c2534bd..19bf544 100644
--- a/dot/bashrc
+++ b/dot/bashrc
@@ -380,12 +380,13 @@ fanspeed()
380 380
381subvolify() 381subvolify()
382{ 382{
383 [ -d "$1" ] || return 383 local path
384 [ -e "$1".subvol~ -o -e "$1".subvol ] && return 1 384 path=$(realpath -e "$1") || return
385 sudo btrfs subvolume create "$1".subvol || return 385 [ -e "$path".subvol~ -o -e "$path".subvol ] && return 1
386 sudo chown --reference="$1" "$1".subvol || return 386 sudo btrfs subvolume create "$path".subvol || return
387 sudo chmod --reference="$1" "$1".subvol || return 387 sudo chown --reference="$path" "$path".subvol || return
388 sudo find "$1" -mindepth 1 -maxdepth 1 -print0 | xargs -0 mv -t "$1".subvol 388 sudo chmod --reference="$path" "$path".subvol || return
389 mv "$1" "$1".subvol~ 389 sudo find "$path" -mindepth 1 -maxdepth 1 -print0 | xargs -0 mv -t "$path".subvol
390 mv "$1".subvol "$1" 390 mv "$path" "$path".subvol~
391 mv "$path".subvol "$path"
391} 392}