code-server auto-sync 2026-06-25T15:25:02+00:00
This commit is contained in:
31
projects/niikn/_kbtmp_sync.ps1
Normal file
31
projects/niikn/_kbtmp_sync.ps1
Normal 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() }
|
||||
Reference in New Issue
Block a user