Files
m2110/bash/sync-with-shelve.sh
Alexander Demidov 1f3867eeec + betterdays with 90 minutes day and 3 minutes night
+ sync server script
* fix and optimize shelve when sync pakku
2026-02-26 16:58:43 +03:00

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