diff --git a/linux/install.ps1 b/linux/install.ps1 index 0dca2c8..7080dae 100644 --- a/linux/install.ps1 +++ b/linux/install.ps1 @@ -8,7 +8,7 @@ Службы настраиваются для запуска из-под учётной записи lers. Если такой учётной записи нет, она будет создана. #> -param ([string]$version, [switch]$server, [switch]$pollservice, [switch]$force, [switch] $update) +param ([string]$version, [switch]$server, [switch]$pollservice, [switch]$force, [switch] $update, [switch] $uninstall) Set-StrictMode -Version 1 $ErrorActionPreference = "Stop" @@ -42,24 +42,11 @@ function Get-ServerAddress } while ($true) } +# Возвращает версию и описание ОС function Get-OsRelease { return Get-Content /etc/os-release | ConvertFrom-StringData } -################################### -# Регистрация репозиториев для установки зависимостей. -################################### - -function Add-AstraRegistry($os, $version) -{ - "deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/1.7.2/repository-main 1.7_x86-64 main contrib non-free astra-ce" ` - | Set-Content -Path "/etc/apt/sources.list.d/astra-ext.list" -} - -################################### -# Установка зависимостей -################################### - # Устанавливает рантайм aspnet function Install-DotnetRuntime { @@ -74,12 +61,6 @@ function Install-DotnetRuntime apt-get update apt install aspnetcore-runtime-$dotnetRuntimeVersion -y } - elseif ($os.ID -eq "astra") - { - Add-AstraRegistry -osid $os.ID -version $os.VERSION_ID - apt-get update - apt install aspnetcore-runtime-$dotnetRuntimeVersion -y - } else { $os | Format-Table @@ -183,10 +164,11 @@ ExecStart=/usr/bin/dotnet $pollServiceExecutable WantedBy=multi-user.target "@ +################################### +# Установочный скрипт +################################### -################################### # Убедимся, что запущены от ROOT. -################################### if ($PSVersionTable.Platform -eq "Unix") { if ( $(whoami) -ne "root") { @@ -203,9 +185,16 @@ if ($serviceManager -ne "systemd") { exit 3; } -################################## +# Убедимся, что передана верная комбинация флагов + +if ($uninstall -and $update) +{ + Write-Error "Флаги -update и -uninstall нельзя использовать вместе."; + exit 1; +} + + # Определяем откуда будем загружать пакеты. -################################## if ($version) { @@ -218,8 +207,7 @@ else $pollServiceUrl = "https://update.lers.ru/download/files/PollService.zip" } - -## Останавливаем запущенные службы, если они есть +# Останавливаем запущенные службы, если они есть if (Test-Path -Path $serverServiceFile) { @@ -231,6 +219,39 @@ if (Test-Path -Path $pollserviceServiceFile) systemctl stop $pollserviceServiceName } +################################## +# Удаление системы. +################################## + +if ($uninstall) +{ + Write-Host "Удаление ЛЭРС УЧЁТ" + + if (Test-Path -Path $serverServiceFile) + { + systemctl disable $serverServiceName + Remove-Item -Path $serverServiceFile -Force + } + + if (Test-Path -Path $pollserviceServiceFile) + { + systemctl disable $pollserviceServiceName + Remove-Item -Path $pollserviceServiceFile -Force + } + + Remove-Item -Path $lersDir -Recurse -Force + Remove-Item -Path $dataDir -Recurse -Force + + Write-Host "Папка с конфигурацией $configDir не удалена. Вы можете удалить её вручную, если не планируете переустанавливать ЛЭРС УЧЁТ." + + exit 0; +} + + +################################## +# Установка и обновление системы. +################################## + if ($update) { # В режиме обновления игнорируем ключи -server и -pollservice