72 lines
2.4 KiB
PowerShell
72 lines
2.4 KiB
PowerShell
#Requires -Version 5.1
|
|
#Requires -RunAsAdministrator
|
|
|
|
$script:ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
Set-Location $script:ScriptDir
|
|
. "$script:ScriptDir\lib\common.ps1"
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$TaskName = "Gitea"
|
|
|
|
try {
|
|
Test-Dependencies
|
|
|
|
if (-not (Test-Path ".env")) {
|
|
throw "Файл .env не найден. Сначала выполните .\deploy.ps1 install"
|
|
}
|
|
|
|
$startScript = Join-Path $script:ScriptDir "start.ps1"
|
|
$stopScript = Join-Path $script:ScriptDir "stop.ps1"
|
|
|
|
$existing = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
|
|
if ($existing) {
|
|
Write-Warn "Задача '$TaskName' уже существует. Перерегистрация..."
|
|
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false
|
|
}
|
|
|
|
Write-Info "Регистрация задачи автозапуска: $TaskName"
|
|
|
|
$startAction = New-ScheduledTaskAction `
|
|
-Execute "powershell.exe" `
|
|
-Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$startScript`""
|
|
|
|
$stopAction = New-ScheduledTaskAction `
|
|
-Execute "powershell.exe" `
|
|
-Argument "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$stopScript`""
|
|
|
|
$startupTrigger = New-ScheduledTaskTrigger -AtStartup
|
|
$startupTrigger.Delay = "PT1M"
|
|
|
|
$principal = New-ScheduledTaskPrincipal `
|
|
-UserId "SYSTEM" `
|
|
-LogonType ServiceAccount `
|
|
-RunLevel Highest
|
|
|
|
$settings = New-ScheduledTaskSettingsSet `
|
|
-AllowStartIfOnBatteries `
|
|
-DontStopIfGoingOnBatteries `
|
|
-StartWhenAvailable `
|
|
-ExecutionTimeLimit ([TimeSpan]::Zero)
|
|
|
|
Register-ScheduledTask `
|
|
-TaskName $TaskName `
|
|
-Action $startAction `
|
|
-Trigger $startupTrigger `
|
|
-Principal $principal `
|
|
-Settings $settings `
|
|
-Description "Автозапуск Gitea (Docker Compose)" | Out-Null
|
|
|
|
Write-Info "Запуск Gitea..."
|
|
& $startScript
|
|
|
|
Write-Info "Задача '$TaskName' установлена. Gitea будет запускаться при загрузке Windows."
|
|
Write-Info "Управление:"
|
|
Write-Info " Start-ScheduledTask -TaskName $TaskName"
|
|
Write-Info " Stop-ScheduledTask -TaskName $TaskName"
|
|
Write-Info " Get-ScheduledTask -TaskName $TaskName"
|
|
}
|
|
catch {
|
|
Write-Err $_.Exception.Message
|
|
exit 1
|
|
}
|