#!/bin/bash function check_dependency() { if ! command -v "$1" &> /dev/null; then echo "Error: '$1' is not installed. Please install it." exit 1 fi } # Check for jq and unzip check_dependency jq check_dependency unzip CONFIG_FILE="patch-config.txt" # Check if CONFIG_FILE exists if [ ! -f "$CONFIG_FILE" ]; then echo "Config file '$CONFIG_FILE' not found! Assuming no patching needed." exit 0 fi # Convert line endings to Unix format sed -i 's/\r$//' "$CONFIG_FILE" # Read configuration from file source "$CONFIG_FILE" # Get the latest hash echo "Getting latest commit SHA hash" latest_patch_sha=$(curl -s "https://gitgud.io/api/v4/projects/$username%2F$repo/repository/branches/$branch" | jq -r '.commit.id') function download_extract() { # Download zip file echo "Downloading latest patch..." curl -sL "https://gitgud.io/$username/$repo/-/archive/$branch/$repo-$branch.zip" -o repo.zip # Extract contents, overwriting conflicts echo "Extracting..." unzip -qo repo.zip echo "Applying patch..." if [ -d "$repo-$branch/"www ]; then cp -r "$repo-$branch/"* . jq --arg repo "$repo" 'if (.name | test("^[[:space:]]*$")) then .name = $repo else . end' package.json > package.json else cp -r "$repo-$branch/"* ./www fi echo "Cleaning up..." rm repo.zip rm -rf "$repo-$branch" rm latest_patch_sha.txt # Store latest SHA for next check echo "$latest_patch_sha" > previous_patch_sha.txt } # Check if previous_patch_sha.txt exists if [ ! -f previous_patch_sha.txt ]; then echo "Previous SHA hash not found!" echo "Assuming first time patching..." download_extract else # Read the stored SHA from previous check previous_patch_sha=$(