fix: restore original dir before exec zsh
This commit is contained in:
@@ -18,16 +18,21 @@ dotstate_update() {
|
|||||||
[[ "$(id -u)" -ne "$(stat -c '%u' "$TARGET_DIR" 2>/dev/null)" ]] && return 0
|
[[ "$(id -u)" -ne "$(stat -c '%u' "$TARGET_DIR" 2>/dev/null)" ]] && return 0
|
||||||
[[ ! -d "$TARGET_DIR/.git" ]] && return 0
|
[[ ! -d "$TARGET_DIR/.git" ]] && return 0
|
||||||
|
|
||||||
|
local orig_dir="$PWD"
|
||||||
cd "$TARGET_DIR" || return 0
|
cd "$TARGET_DIR" || return 0
|
||||||
|
|
||||||
local remote_sha local_sha
|
local remote_sha local_sha
|
||||||
remote_sha=$(timeout 5 git ls-remote "$REPO_URL" HEAD | awk '{print $1}')
|
remote_sha=$(timeout 5 git ls-remote "$REPO_URL" HEAD | awk '{print $1}')
|
||||||
[[ -z "$remote_sha" ]] && return 0
|
[[ -z "$remote_sha" ]] && { cd "$orig_dir"; return 0; }
|
||||||
local_sha=$(git rev-parse HEAD)
|
local_sha=$(git rev-parse HEAD)
|
||||||
[[ "$remote_sha" == "$local_sha" ]] && return 0
|
if [[ "$remote_sha" == "$local_sha" ]]; then
|
||||||
|
cd "$orig_dir"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
info "Repository out of date. Pulling updates..."
|
info "Repository out of date. Pulling updates..."
|
||||||
git fetch origin && git reset --hard origin/master && git clean -fd &>/dev/null
|
git fetch origin && git reset --hard origin/master && git clean -fd &>/dev/null
|
||||||
|
cd "$orig_dir"
|
||||||
dotstate activate
|
dotstate activate
|
||||||
exec zsh
|
exec zsh
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user