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"
|
||||
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
@@ -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
@@ -1 +1 @@
|
||||
2.1.0-SAC
|
||||
2.1.1-SAC
|
||||
|
||||
Reference in New Issue
Block a user