diff --git a/core/src/main/java/ru/kirillius/pf/sdn/core/Config.java b/core/src/main/java/ru/kirillius/pf/sdn/core/Config.java index a83159b..e475006 100644 --- a/core/src/main/java/ru/kirillius/pf/sdn/core/Config.java +++ b/core/src/main/java/ru/kirillius/pf/sdn/core/Config.java @@ -229,6 +229,6 @@ public class Config { * Indicates whether the in-memory configuration diverges from the initially loaded snapshot. */ public boolean isModified() { - return !initialJSON.toString().equals(serialize(this).toString()); + return !initialJSON.similar(serialize(this)); } } diff --git a/launcher.sh b/launcher.sh index 057cc81..6665971 100644 --- a/launcher.sh +++ b/launcher.sh @@ -102,54 +102,54 @@ download_latest_version() { return 1 fi } +while true; do + # Находим последнюю версию файла + VER_FILE=$(find_local_version) -# Находим последнюю версию файла -VER_FILE=$(find_local_version) + # Если не нашли файлы локально, скачиваем с веб-страницы + if [ -z "$VER_FILE" ]; then + echo "No local .pfapp files found, downloading from repository..." + # Сохраняем вывод функции в временную переменную, чтобы показать сообщения + DOWNLOAD_OUTPUT=$(download_latest_version) + if [ $? -ne 0 ]; then + echo "Failed to download application file" >&2 + exit 1 + fi + # Извлекаем последнюю строку (путь к файлу) из вывода + VER_FILE=$(echo "$DOWNLOAD_OUTPUT" | tail -n 1) -# Если не нашли файлы локально, скачиваем с веб-страницы -if [ -z "$VER_FILE" ]; then - echo "No local .pfapp files found, downloading from repository..." - # Сохраняем вывод функции в временную переменную, чтобы показать сообщения - DOWNLOAD_OUTPUT=$(download_latest_version) - if [ $? -ne 0 ]; then - echo "Failed to download application file" >&2 - exit 1 - fi - # Извлекаем последнюю строку (путь к файлу) из вывода - VER_FILE=$(echo "$DOWNLOAD_OUTPUT" | tail -n 1) + # Выводим все сообщения кроме последней строки + echo "$DOWNLOAD_OUTPUT" | head -n -1 + else + # Выводим информацию о найденной локальной версии + VER=$(basename "$VER_FILE") + VER="${VER%.pfapp}" + echo "Using local version: $VER" + fi - # Выводим все сообщения кроме последней строки - echo "$DOWNLOAD_OUTPUT" | head -n -1 -else - # Выводим информацию о найденной локальной версии - VER=$(basename "$VER_FILE") - VER="${VER%.pfapp}" - echo "Using local version: $VER" -fi + # Извлекаем только имя файла (без пути) + VER=$(basename "$VER_FILE") -# Извлекаем только имя файла (без пути) -VER=$(basename "$VER_FILE") + # Убираем расширение .pfapp чтобы получить чистую версию + VER="${VER%.pfapp}" -# Убираем расширение .pfapp чтобы получить чистую версию -VER="${VER%.pfapp}" + # Выводим финальную информацию о версии + echo "Starting application version: $VER" -# Выводим финальную информацию о версии -echo "Starting application version: $VER" - -# Функция для запуска Java -run_java() { - java -jar "$LIBRARY/$VER.pfapp" -c="$CFGPATH" -l="$LIBRARY" -r="$REPO_URL" -} + # Функция для запуска Java + run_java() { + java -jar "$LIBRARY/$VER.pfapp" -c="$CFGPATH" -l="$LIBRARY" -r="$REPO_URL" + } # Запускаем Java с возможностью перезапуска при коде возврата 42 -while true; do - run_java - EXIT_CODE=$? - if [ $EXIT_CODE -eq 42 ]; then - echo "Restarting application (exit code 42)..." - continue - else - exit $EXIT_CODE - fi + run_java + EXIT_CODE=$? + + if [ $EXIT_CODE -eq 42 ]; then + echo "Restarting application (exit code 42)..." + continue + else + exit $EXIT_CODE + fi done \ No newline at end of file