Git stash pop local changes after update

This commit is contained in:
2025-02-22 15:17:27 -05:00
parent 2fbc329f1e
commit c629846c8e

View File

@@ -1587,33 +1587,28 @@ update() {
# Check if we're in a git directory and if it's the installJRMC repository # Check if we're in a git directory and if it's the installJRMC repository
if git -C "$SCRIPT_DIR" rev-parse --is-inside-work-tree &>/dev/null \ if git -C "$SCRIPT_DIR" rev-parse --is-inside-work-tree &>/dev/null \
&& [[ "$(git -C "$SCRIPT_DIR" config --get remote.origin.url)" == *"installJRMC"* ]]; then && [[ "$(git -C "$SCRIPT_DIR" config --get remote.origin.url)" == *"installJRMC"* ]]; then
debug "installJRMC git repository detected. Running git pull"
# Get the current commit hash # Get the current commit hash
local before_pull_hash after_pull_hash local before_pull_hash after_pull_hash
before_pull_hash=$(git -C "$SCRIPT_DIR" rev-parse HEAD) before_pull_hash=$(git -C "$SCRIPT_DIR" rev-parse HEAD)
# Stash any local changes # Stash local changes before pull
execute git -C "$SCRIPT_DIR" stash --quiet execute git -C "$SCRIPT_DIR" stash --quiet
# Pull the latest changes # Pull latest changes
debug "Executing git pull in $SCRIPT_DIR" debug "Running git pull in $SCRIPT_DIR"
if git -C "$SCRIPT_DIR" pull | grep -q "Already up to date"; then if ! git -C "$SCRIPT_DIR" pull | grep -q "Already up to date"; then
debug "No updates found in git repository." # Get the new commit hash after pull
return 0 after_pull_hash=$(git -C "$SCRIPT_DIR" rev-parse HEAD)
fi
# Get the new commit hash after pull # If the commit hash has changed, an update occurred
after_pull_hash=$(git -C "$SCRIPT_DIR" rev-parse HEAD) if [[ "$before_pull_hash" != "$after_pull_hash" ]]; then
echo "Detected installJRMC update, restarting"
# If the commit hash has changed, an update occurred execute git -C "$SCRIPT_DIR" stash pop
if [[ "$before_pull_hash" != "$after_pull_hash" ]]; then exec "$SCRIPT_PATH" "$@" "--no-update"
echo "Detected installJRMC update, restarting" fi
exec "$SCRIPT_PATH" "$@" "--no-update"
else
debug "Git pull did not change the commit hash. No update applied."
return 0
fi fi
execute git -C "$SCRIPT_DIR" stash pop
else else
debug "Not in a git repository or not the installJRMC repository. Checking for updates via download." debug "Not in a git repository or not the installJRMC repository. Checking for updates via download."