diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-13 00:12:18 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-13 00:12:18 -0400 |
| commit | 0f4fbe00108c811da20e802290d9d50fc8daff4d (patch) | |
| tree | d26dfe5974b019dfd23683a35162947ac937d581 | |
| parent | bc613e72238f864a597777826d1f9cc533c4cffa (diff) | |
| download | archangel-0f4fbe00108c811da20e802290d9d50fc8daff4d.tar.gz archangel-0f4fbe00108c811da20e802290d9d50fc8daff4d.zip | |
refactor: dedupe findmnt invocation in safe_cleanup_work_dir
The catch-all mount-cleanup block called findmnt twice (once as an
existence guard, once in the pipe). Consolidate to a single call
captured to a local, guard with -n test. No behavior change — same
mounts, same order, same lazy-unmount.
Left the explicit known-mount loop alone; it's a faster path for the
deterministic mkarchiso bind mounts, with findmnt as the catch-all
for anything else. Not parallel strategies, just fast path + fallback.
| -rwxr-xr-x | build.sh | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -48,11 +48,15 @@ safe_cleanup_work_dir() { fi done - # Also catch any other mounts we might have missed - if findmnt --list -o TARGET 2>/dev/null | grep -q "$airootfs"; then - findmnt --list -o TARGET 2>/dev/null | grep "$airootfs" | sort -r | while read -r mp; do + # Catch any other mounts under airootfs (bind mounts not in the + # explicit list above). Deepest-first via reverse sort. + local leftover + leftover=$(findmnt --list --noheadings -o TARGET 2>/dev/null \ + | grep "$airootfs" | sort -r) + if [[ -n "$leftover" ]]; then + while IFS= read -r mp; do umount -l "$mp" 2>/dev/null || true - done + done <<< "$leftover" fi # Small delay to let lazy unmounts complete |
