45 lines
1.5 KiB
Bash
Executable File
45 lines
1.5 KiB
Bash
Executable File
#!/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 |