git:checkout-worktree: Refactor into one loop
This commit is contained in:
@@ -24,25 +24,18 @@ trap '
|
|||||||
' INT QUIT TERM EXIT
|
' INT QUIT TERM EXIT
|
||||||
|
|
||||||
git worktree add "$WORKTREE_PATH" "$1"
|
git worktree add "$WORKTREE_PATH" "$1"
|
||||||
|
|
||||||
pushd -q "$WORKTREE_PATH"
|
pushd -q "$WORKTREE_PATH"
|
||||||
|
|
||||||
# Start subshell
|
# Restart the shell until every the worktree is removed
|
||||||
|
while [[ -e "$WORKTREE_PATH" ]]; do
|
||||||
"$SHELL" && errc=$? || errc=$?
|
"$SHELL" && errc=$? || errc=$?
|
||||||
|
git worktree remove "$WORKTREE_PATH" || true
|
||||||
# Cleanup when exiting
|
|
||||||
popd -q || true
|
|
||||||
|
|
||||||
# Restart the subshell until every issue is resolved and the worktree is
|
|
||||||
# removed
|
|
||||||
until [[ ! -e "$WORKTREE_PATH" ]] || git worktree remove "$WORKTREE_PATH"; do
|
|
||||||
pushd -q "$WORKTREE_PATH"
|
|
||||||
"$SHELL" && errc=$? || errc=$?
|
|
||||||
popd -q || true
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# Reset traps
|
# Reset traps
|
||||||
trap '-' INT QUIT TERM EXIT
|
trap '-' INT QUIT TERM EXIT
|
||||||
|
|
||||||
|
popd -q || true
|
||||||
|
|
||||||
git worktree prune
|
git worktree prune
|
||||||
return $errc
|
return $errc
|
||||||
|
|||||||
Reference in New Issue
Block a user