feat(deploy): sync SERVER_IPV4 hint and DAILY_REPORT_ENABLED on update (2.1.3-SAC)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-22 10:01:16 +10:00
parent 1361fd264c
commit 489d071208
3 changed files with 53 additions and 2 deletions
+51
View File
@@ -237,6 +237,53 @@ config_key_exists() {
grep -qE "^[[:space:]]*${key}=" "$file" 2>/dev/null
}
config_key_mentioned() {
local key="$1" file="$2"
grep -qE "^[[:space:]]*(#.*)?${key}=" "$file" 2>/dev/null
}
sync_server_ipv4_hint_config() {
local file="$CONFIG_FILE" backed_up=0
[ -f "$file" ] || return 1
if config_key_mentioned "SERVER_IPV4" "$file"; then
return 1
fi
backup_config_if_needed "$file" backed_up
{
printf '\n# --- Явный IPv4 для SAC host.ipv4 (раскомментируйте при необходимости) ---\n'
printf '# SERVER_IPV4="10.0.0.10"\n'
} >>"$file"
log_message "INFO" "Config $file: добавлена подсказка # SERVER_IPV4."
CONFIG_CHANGED=1
return 0
}
sync_daily_report_enabled_config() {
local file="$CONFIG_FILE" backed_up=0 current
[ -f "$file" ] || return 1
if config_key_exists "DAILY_REPORT_ENABLED" "$file"; then
current=$(config_conf_value "DAILY_REPORT_ENABLED" "$file" 2>/dev/null || true)
if [ "$current" = "1" ]; then
return 1
fi
backup_config_if_needed "$file" backed_up
set_config_kv "DAILY_REPORT_ENABLED" "1" "$file"
log_message "INFO" "Config $file: DAILY_REPORT_ENABLED ${current:-<пусто>} → 1 (отчёт с агента)."
else
backup_config_if_needed "$file" backed_up
{
printf '\n# --- Суточный отчёт report.daily.ssh (1 = с агента; 0 = только SAC) ---\n'
printf 'DAILY_REPORT_ENABLED="1"\n'
} >>"$file"
log_message "INFO" "Config $file: добавлен DAILY_REPORT_ENABLED=1."
fi
CONFIG_CHANGED=1
return 0
}
append_heartbeat_interval_block() {
local file="$1"
{
@@ -804,6 +851,8 @@ deploy_install_config() {
ensure_ssh_monitor_config_file || return 1
sync_sac_config_keys || true
sync_heartbeat_interval_config || true
sync_server_ipv4_hint_config || true
sync_daily_report_enabled_config || true
}
deploy_install_systemd() {
@@ -1157,6 +1206,8 @@ update_script() {
SUMMARY_CONFIG="SAC без изменений"
fi
sync_heartbeat_interval_config || true
sync_server_ipv4_hint_config || true
sync_daily_report_enabled_config || true
if [ "${CONFIG_CHANGED:-0}" -eq 1 ] && [ "$SUMMARY_CONFIG" = "SAC без изменений" ]; then
SUMMARY_CONFIG="heartbeat/watchdog выровнены"
elif [ "${CONFIG_CHANGED:-0}" -eq 1 ] && [ "$SUMMARY_CONFIG" != "SAC без изменений" ]; then