+ betterdays with 90 minutes day and 3 minutes night
+ sync server script * fix and optimize shelve when sync pakku
This commit is contained in:
33
bash/sync-serverpack.sh
Executable file
33
bash/sync-serverpack.sh
Executable file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
pakku() { pakku-mc "$@"; }
|
||||
|
||||
# Определяем директории
|
||||
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
|
||||
REPO_ROOT="${SCRIPT_DIR}/.."
|
||||
SOURCE_ZIP="${REPO_ROOT}/build/serverpack/*.zip"
|
||||
TARGET_DIR="/home/dimti/Seafile/minecraft/installers/m2110/"
|
||||
|
||||
cd "${REPO_ROOT}" || exit 1
|
||||
|
||||
pakku export
|
||||
|
||||
# Проверяем, существует ли архив
|
||||
if ls ${SOURCE_ZIP} 1> /dev/null 2>&1; then
|
||||
echo "Нашел архив серверной сборки: ${SOURCE_ZIP}"
|
||||
else
|
||||
echo "Ошибка: Архив серверной сборки не найден в ${SOURCE_ZIP}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Очищаем целевые папки mods и config
|
||||
echo "Очистка папок mods и config в ${TARGET_DIR}..."
|
||||
rm -rf "${TARGET_DIR}/mods"
|
||||
rm -rf "${TARGET_DIR}/config"
|
||||
|
||||
# Распаковываем архив в целевую директорию
|
||||
echo "Распаковка архива в ${TARGET_DIR}..."
|
||||
unzip -o ${SOURCE_ZIP} -d "${TARGET_DIR}"
|
||||
|
||||
echo "Синхронизация завершена успешно."
|
||||
@ -5,8 +5,41 @@ 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 fetch --shelve
|
||||
|
||||
pakku sync
|
||||
mv .pakku/shelf/* mods/
|
||||
|
||||
# Возвращаем кастомные моды обратно
|
||||
restore_custom_mods
|
||||
|
||||
# Перемещаем оставшиеся моды из кармана pakku
|
||||
mv .pakku/shelf/* mods/ 2>/dev/null || true
|
||||
Reference in New Issue
Block a user