🐛 fix(snapper): use findmnt --list to avoid tree-drawing chars in paths

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
FlintyLemming
2026-02-28 17:34:37 +08:00
parent 7b3f579745
commit 1e1fb13520

View File

@@ -69,7 +69,8 @@ install_snapper() {
# ─── List Btrfs Subvolumes ──────────────────────────────────────────────────── # ─── List Btrfs Subvolumes ────────────────────────────────────────────────────
list_btrfs_mounts() { list_btrfs_mounts() {
# Returns sorted list of mount points that are btrfs # Returns sorted list of mount points that are btrfs
findmnt -t btrfs -n -o TARGET 2>/dev/null | sort # -l disables tree output to avoid box-drawing characters in paths
findmnt -t btrfs -n -l -o TARGET 2>/dev/null | sort
} }
# ─── Select Subvolumes Interactively ───────────────────────────────────────── # ─── Select Subvolumes Interactively ─────────────────────────────────────────
@@ -88,9 +89,9 @@ select_subvolumes() {
echo "" echo ""
for i in "${!mounts[@]}"; do for i in "${!mounts[@]}"; do
local subvol device local subvol device
subvol=$(findmnt -n -o OPTIONS "${mounts[$i]}" 2>/dev/null \ subvol=$(findmnt -n -l -o OPTIONS "${mounts[$i]}" 2>/dev/null \
| tr ',' '\n' | grep '^subvol=' | head -1 | sed 's/subvol=//' || echo "(default)") | tr ',' '\n' | grep '^subvol=' | head -1 | sed 's/subvol=//' || echo "(default)")
device=$(findmnt -n -o SOURCE "${mounts[$i]}" 2>/dev/null || echo "?") device=$(findmnt -n -l -o SOURCE "${mounts[$i]}" 2>/dev/null || echo "?")
printf " %2d) %-25s subvol=%-20s %s\n" \ printf " %2d) %-25s subvol=%-20s %s\n" \
"$((i+1))" "${mounts[$i]}" "$subvol" "$device" "$((i+1))" "${mounts[$i]}" "$subvol" "$device"
done done