Initial commit
This commit is contained in:
48
bash/sync-with-shelve.sh
Executable file
48
bash/sync-with-shelve.sh
Executable file
@ -0,0 +1,48 @@
|
||||
#!/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"
|
||||
"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
|
||||
|
||||
pakku sync
|
||||
|
||||
# Возвращаем кастомные моды обратно
|
||||
restore_custom_mods
|
||||
|
||||
# Перемещаем оставшиеся моды из кармана pakku
|
||||
mv .pakku/shelf/* mods/ 2>/dev/null || true
|
||||
Reference in New Issue
Block a user