fix: default updater git to kalinamall and honor REPO_URL from SAC (2.1.1-SAC)

Always sync kalinamall remote from REPO_URL; support GIT_BRANCH env for SAC-driven updates.
This commit is contained in:
PTah
2026-06-20 19:28:14 +10:00
parent 9118bbdd64
commit 2ff60280ef
3 changed files with 16 additions and 25 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ IFS=$'\n\t'
# ============================================
CONFIG_FILE="/etc/ssh-monitor.conf"
SSH_MONITOR_VERSION="2.1.0-SAC"
SSH_MONITOR_VERSION="2.1.1-SAC"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ -f "$SCRIPT_DIR/sac-client.sh" ]; then
+14 -23
View File
@@ -3,7 +3,8 @@
# === Конфигурация скрипта ===
UPDATE_DIR="/opt/scripts/update"
SCRIPT_NAME="ssh-monitor"
REPO_URL="https://github.com/PTah/ssh-monitor.git"
REPO_URL="${REPO_URL:-https://git.kalinamall.ru/PapaTramp/ssh-monitor.git}"
GIT_BRANCH="${GIT_BRANCH:-main}"
LOCAL_SCRIPT_PATH="/usr/local/bin/ssh-monitor"
LOG_FILE="/var/log/update_script.log"
@@ -34,7 +35,7 @@ WATCHDOG_SERVICE_PATH="/etc/systemd/system/ssh-monitor-watchdog.service"
WATCHDOG_TIMER_PATH="/etc/systemd/system/ssh-monitor-watchdog.timer"
# === Список переменных, объявленных в скрипте (для логирования при DEBUG=1) ===
SCRIPT_VARS=("UPDATE_DIR" "SCRIPT_NAME" "REPO_URL" "LOCAL_SCRIPT_PATH" "LOG_FILE" "DEBUG" "REMOTE_SCRIPT_PATH" "LOCAL_CHECKSUM" "REMOTE_CHECKSUM")
SCRIPT_VARS=("UPDATE_DIR" "SCRIPT_NAME" "REPO_URL" "GIT_BRANCH" "LOCAL_SCRIPT_PATH" "LOG_FILE" "DEBUG" "REMOTE_SCRIPT_PATH" "LOCAL_CHECKSUM" "REMOTE_CHECKSUM")
# === Функции ===
@@ -339,27 +340,17 @@ get_git_short_rev() {
git -C "$repo_dir" rev-parse --short HEAD 2>/dev/null || printf 'unknown'
}
# Remote с URL закрытого зеркала (не GitHub), если настроен.
# Remote для fetch/pull: всегда kalinamall с URL из REPO_URL (SAC передаёт REPO_URL при SSH-обновлении).
resolve_git_remote_name() {
local repo="$1" name url
if git -C "$repo" remote get-url kalinamall &>/dev/null; then
printf '%s' kalinamall
return 0
local repo="$1"
local name=kalinamall
if git -C "$repo" remote get-url "$name" &>/dev/null; then
git -C "$repo" remote set-url "$name" "$REPO_URL" >> "$LOG_FILE" 2>&1
else
git -C "$repo" remote add "$name" "$REPO_URL" >> "$LOG_FILE" 2>&1 \
|| git -C "$repo" remote set-url "$name" "$REPO_URL" >> "$LOG_FILE" 2>&1
fi
while read -r name; do
[ -n "$name" ] || continue
url=$(git -C "$repo" remote get-url "$name" 2>/dev/null || true)
case "$url" in
*git.kalinamall.ru*) printf '%s' "$name"; return 0 ;;
esac
done < <(git -C "$repo" remote 2>/dev/null)
if git -C "$repo" remote get-url origin &>/dev/null; then
printf '%s' origin
return 0
fi
git -C "$repo" remote add kalinamall "$REPO_URL" >> "$LOG_FILE" 2>&1 \
|| git -C "$repo" remote set-url kalinamall "$REPO_URL" >> "$LOG_FILE" 2>&1
printf '%s' kalinamall
printf '%s' "$name"
}
# fetch + ff-only pull; при расхождении истории (force-push) — reset --hard.
@@ -1068,7 +1059,7 @@ update_script() {
debug_step "Проверяем наличие репозитория и обновляем/клонируем"
if [ -d "$SCRIPT_NAME" ]; then
if sync_git_repository "$git_repo" main; then
if sync_git_repository "$git_repo" "$GIT_BRANCH"; then
pull_ok=1
else
pull_ok=0
@@ -1077,7 +1068,7 @@ update_script() {
else
log_action "git: clone $REPO_URL$UPDATE_DIR/$SCRIPT_NAME"
debug_step "Выполняем git clone $REPO_URL $SCRIPT_NAME"
if ! git clone "$REPO_URL" "$SCRIPT_NAME" >> "$LOG_FILE" 2>&1; then
if ! git clone -b "$GIT_BRANCH" "$REPO_URL" "$SCRIPT_NAME" >> "$LOG_FILE" 2>&1; then
SUMMARY_GIT="clone FAILED"
SUMMARY_SCRIPT="ошибка"
SUMMARY_SCRIPT_REASON="git clone failed"
+1 -1
View File
@@ -1 +1 @@
2.1.0-SAC
2.1.1-SAC