Files
TFG/scripts/update_forge_auto_install.sh

42 lines
1.2 KiB
Bash
Executable File

#!/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"