#!/bin/bash # # Синххронизация локальных модов с текущей сборкой # Можно запускать эту команды после добавления новых модов в сборку # https://juraj-hrivnak.github.io/Pakku/pakku-sync.html # set -eu pipefail pakku() { pakku-mc "$@"; } SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd) REPO_ROOT="${SCRIPT_DIR}/.." cd "${REPO_ROOT}" || exit 1 # Массив ключевых слов для идентификации кастомных модов CUSTOM_MOD_KEYWORDS=( "advanced-xray" "mobility" ) # Папка для временного хранения кастомных модов SHELF_DIR=".pakku/shelf" mkdir -p "${SHELF_DIR}" # Функция для перемещения кастомных модов в карман shelve_custom_mods() { for keyword in "${CUSTOM_MOD_KEYWORDS[@]}"; do find mods -maxdepth 1 -name "*${keyword}*" -type f -exec mv -v {} "${SHELF_DIR}" \; done } # Функция для возврата кастомных модов обратно restore_custom_mods() { for keyword in "${CUSTOM_MOD_KEYWORDS[@]}"; do find "${SHELF_DIR}" -name "*${keyword}*" -type f -exec mv -v {} mods \; done } # Перемещаем кастомные моды в карман перед синхронизацией shelve_custom_mods # Если нет файла pakku-lock.json, то выполнить команду инициализации if [ ! -f pakku-lock.json ]; then pakku init -n m2612 -v 0.0.1 --mc-v=26.1.2 -l fabric=0.19.3 -t multiplatform fi pakku -y sync # Возвращаем кастомные моды обратно restore_custom_mods # Перемещаем оставшиеся моды из кармана pakku mv .pakku/shelf/* mods/ 2>/dev/null || true