#!/usr/bin/env bash set -euo pipefail # Update placeholders in serverpack run file and inside serverpack zip(s) # using values from pakku-lock.json. Mirrors the GitHub workflow logic. LOCK_JSON="./pakku-lock.json" BASE_FILE=".pakku/server-overrides/forge-auto-install.txt" RUN_FILE="./build/serverpack/forge-auto-install.txt" SERVERPACK_DIR="./build/serverpack" # Extract info like in the workflow MC_VERSION=$(jq -r '.mc_versions[0]' "$LOCK_JSON") LOADER_KEY=$(jq -r '.loaders | keys[0]' "$LOCK_JSON") LOADER_VERSION=$(jq -r --arg k "$LOADER_KEY" '.loaders[$k]' "$LOCK_JSON") # Normalize loader type to expected casing case "$LOADER_KEY" in forge|Forge) LOADER_TYPE="Forge" ;; neoforge|NeoForge) LOADER_TYPE="NeoForge" ;; *) LOADER_TYPE="$LOADER_KEY" ;; esac echo "minecraftVersion=$MC_VERSION" echo "loaderType=$LOADER_TYPE" echo "loaderVersion=$LOADER_VERSION" cp "$BASE_FILE" "$RUN_FILE" sed -i -e "s/LOADER_VERSION/${LOADER_VERSION}/g" "$RUN_FILE" sed -i -e "s/LOADER_TYPE/${LOADER_TYPE}/g" "$RUN_FILE" sed -i -e "s/MINECRAFT_VERSION/${MC_VERSION}/g" "$RUN_FILE" for z in "$SERVERPACK_DIR"/*.zip; do zip -q -u -j "$z" "$RUN_FILE" echo "patched zip: $z" done rm "$RUN_FILE"