From: NRK <nrk@disroot.org>
Date: Sun, 19 Feb 2023 15:14:53 +0000 (+0600)
Subject: nmv: ensure the tmpfile is cleaned up in all cases
X-Git-Tag: v4.8~11^2
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=bc6a09475dd947bfc8a0fb4dbb15355f07eaba97;p=nnn.git

nmv: ensure the tmpfile is cleaned up in all cases

currently, there's a couple exit paths where the tmpfile doesn't get
cleaned up.
---

diff --git a/plugins/.nmv b/plugins/.nmv
index bbbdafe7..eaebda6c 100755
--- a/plugins/.nmv
+++ b/plugins/.nmv
@@ -37,8 +37,6 @@ esac
 
 exit_status=0
 
-dst_file=$(mktemp "$TMPDIR/.nnnXXXXXX")
-
 if nnn_use_selection "Rename"; then
 	# shellcheck disable=SC2154
 	arr=$(tr '\0' '\n' < "$selection")
@@ -65,6 +63,9 @@ fi
 lines=$(printf "%s\n" "$arr" | wc -l)
 width=${#lines}
 
+dst_file=$(mktemp "$TMPDIR/.nnnXXXXXX")
+trap 'rm -f "$dst_file"' EXIT
+
 printf "%s" "$arr" | awk '{printf("%'"${width}"'d %s\n", NR, $0)}' > "$dst_file"
 
 items=("~")
@@ -170,5 +171,4 @@ for item in "${items[@]}"; do
 	$RM_UTIL "$item"
 done
 
-rm "$dst_file"
 exit $exit_status