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:
+1
-1
@@ -7,7 +7,7 @@ IFS=$'\n\t'
|
|||||||
# ============================================
|
# ============================================
|
||||||
|
|
||||||
CONFIG_FILE="/etc/ssh-monitor.conf"
|
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)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
if [ -f "$SCRIPT_DIR/sac-client.sh" ]; then
|
if [ -f "$SCRIPT_DIR/sac-client.sh" ]; then
|
||||||
|
|||||||
+14
-23
@@ -3,7 +3,8 @@
|
|||||||
# === Конфигурация скрипта ===
|
# === Конфигурация скрипта ===
|
||||||
UPDATE_DIR="/opt/scripts/update"
|
UPDATE_DIR="/opt/scripts/update"
|
||||||
SCRIPT_NAME="ssh-monitor"
|
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"
|
LOCAL_SCRIPT_PATH="/usr/local/bin/ssh-monitor"
|
||||||
LOG_FILE="/var/log/update_script.log"
|
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"
|
WATCHDOG_TIMER_PATH="/etc/systemd/system/ssh-monitor-watchdog.timer"
|
||||||
|
|
||||||
# === Список переменных, объявленных в скрипте (для логирования при DEBUG=1) ===
|
# === Список переменных, объявленных в скрипте (для логирования при 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'
|
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() {
|
resolve_git_remote_name() {
|
||||||
local repo="$1" name url
|
local repo="$1"
|
||||||
if git -C "$repo" remote get-url kalinamall &>/dev/null; then
|
local name=kalinamall
|
||||||
printf '%s' kalinamall
|
if git -C "$repo" remote get-url "$name" &>/dev/null; then
|
||||||
return 0
|
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
|
fi
|
||||||
while read -r name; do
|
printf '%s' "$name"
|
||||||
[ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# fetch + ff-only pull; при расхождении истории (force-push) — reset --hard.
|
# fetch + ff-only pull; при расхождении истории (force-push) — reset --hard.
|
||||||
@@ -1068,7 +1059,7 @@ update_script() {
|
|||||||
|
|
||||||
debug_step "Проверяем наличие репозитория и обновляем/клонируем"
|
debug_step "Проверяем наличие репозитория и обновляем/клонируем"
|
||||||
if [ -d "$SCRIPT_NAME" ]; then
|
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
|
pull_ok=1
|
||||||
else
|
else
|
||||||
pull_ok=0
|
pull_ok=0
|
||||||
@@ -1077,7 +1068,7 @@ update_script() {
|
|||||||
else
|
else
|
||||||
log_action "git: clone $REPO_URL → $UPDATE_DIR/$SCRIPT_NAME"
|
log_action "git: clone $REPO_URL → $UPDATE_DIR/$SCRIPT_NAME"
|
||||||
debug_step "Выполняем git clone $REPO_URL $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_GIT="clone FAILED"
|
||||||
SUMMARY_SCRIPT="ошибка"
|
SUMMARY_SCRIPT="ошибка"
|
||||||
SUMMARY_SCRIPT_REASON="git clone failed"
|
SUMMARY_SCRIPT_REASON="git clone failed"
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
2.1.0-SAC
|
2.1.1-SAC
|
||||||
|
|||||||
Reference in New Issue
Block a user