git:checkout-worktree: Remove tmp dir on error

When the git-worktree call exits with an error we can delete the
temporary directory as nothing is in it.
This commit is contained in:
2022-10-27 23:52:17 +02:00
parent d1f51c0889
commit b22085777e

View File

@@ -30,13 +30,19 @@ local REPO_NAME WORKTREE_PATH
REPO_NAME="${$(git rev-parse --show-toplevel):t}"
WORKTREE_PATH="$(mktemp -d -p "" "worktree.XXX.$REPO_NAME.${1//\//_}")"
git worktree add "$WORKTREE_PATH" "$@" || ret=$?
if (( ret )); then
rmdir "$WORKTREE_PATH"
return $ret
fi
trap '
errc=$?
<&2 printf "Exiting abnormally. Check and possibly remove '$WORKTREE_PATH' manually.\n"
return $errc
' INT QUIT TERM EXIT
git worktree add "$WORKTREE_PATH" "$@"
pushd -q "$WORKTREE_PATH"
"$SHELL" && errc=$? || errc=$?