code-server auto-sync 2026-06-25T15:25:02+00:00

This commit is contained in:
2026-06-25 15:25:02 +00:00
parent 0fa253e614
commit 36ab747d3d
5 changed files with 111 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
# niikn-kb-sync.ps1 — автосинхронизация базы знаний НИИКН с Gitea
# Запускается Scheduled Task каждые ~7 минут. Тянет изменения с сервера,
# коммитит локальные правки и отправляет обратно. Лог: niikn-kb-sync.log
$ErrorActionPreference = "Continue"
$base = "C:\Users\msi\Documents\niikn-knowledge-base"
$git = "C:\Program Files\Git\cmd\git.exe"
$log = "$base\niikn-kb-sync.log"
function Log($m) { "$([DateTime]::Now.ToString('yyyy-MM-dd HH:mm:ss')) $m" | Add-Content -Path $log -Encoding UTF8 }
# mutex — не запускать второй экземпляр
$mtx = New-Object System.Threading.Mutex($false, "niikn-kb-sync")
if (-not $mtx.WaitOne(0)) { exit 0 }
try {
Set-Location $base
# подтянуть с сервера (rebase, чтобы не плодить merge-коммиты)
& $git pull --rebase --autostash origin main 2>&1 | Out-Null
# есть ли локальные изменения?
$status = & $git status --porcelain
if ($status) {
& $git add -A 2>&1 | Out-Null
& $git commit -m "auto-sync $([DateTime]::Now.ToString('yyyy-MM-dd HH:mm'))" 2>&1 | Out-Null
Log "committed local changes"
}
# отправить (если есть что)
$push = & $git push origin main 2>&1
if ($LASTEXITCODE -eq 0) { Log "sync ok" } else { Log "push issue: $push" }
}
catch { Log "ERROR: $_" }
finally { $mtx.ReleaseMutex() }