#!/usr/bin/env bash # One-time restructure of the single-loader NeoForge tree into the Architectury # multiloader layout. Run once from the repo root on the `multiloader` branch: # bash migrate-to-multiloader.sh # It only MOVES the loader/version-agnostic code (config, gif, client, mixins) # into common/, and the NeoForge metadata into neoforge/. The changed files # (generic commands, per-loader entrypoints, mod metadata) are added separately. set -euo pipefail cd "$(dirname "$0")" if [[ ! -e src/main/java/xyz/nightsync/skinsg/SkinsgConfig.java ]]; then echo "Migration already applied; src/ is not present." exit 0 fi CJ=common/src/main/java/xyz/nightsync/skinsg CR=common/src/main/resources mkdir -p "$CJ" "$CR" neoforge/src/main/resources/META-INF # --- loader/version-agnostic core -> common --- git mv src/main/java/xyz/nightsync/skinsg/SkinsgConfig.java "$CJ"/ git mv src/main/java/xyz/nightsync/skinsg/gif "$CJ"/ git mv src/main/java/xyz/nightsync/skinsg/client "$CJ"/ git mv src/main/java/xyz/nightsync/skinsg/mixin "$CJ"/ git mv src/main/resources/skinsg.mixins.json "$CR"/ # --- superseded / rewritten: generic commands, per-loader entrypoints + fresh metadata --- git rm src/main/java/xyz/nightsync/skinsg/commands/SkinsgCommands.java git rm src/main/java/xyz/nightsync/skinsg/SkinsgMod.java git rm src/main/resources/META-INF/neoforge.mods.toml # clean up now-empty old source roots rm -rf src echo "Migration done. Now add the new files (SkinsgCommands generic, SkinsgClient," echo "per-loader entrypoints + metadata) — see MULTILOADER.md — then ./gradlew build."