#!/bin/bash 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" "easy-install" "mobility" ) # Папка для временного хранения кастомных модов SHELF_DIR=".pakku/shelf" mkdir -p "${SHELF_DIR}" # Функция для перемещения кастомных модов в карман shelve_custom_mods() { for keyword in "${CUSTOM_MOD_KEYWORDS[@]}"; do find mods -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 # Это не решает проблемы того, что некоторые моду могут быть добавлены или обновлены лаунчером Freesm # pakku fetch --shelve pakku sync # Возвращаем кастомные моды обратно restore_custom_mods # Перемещаем оставшиеся моды из кармана pakku mv .pakku/shelf/* mods/ 2>/dev/null || true