Добавил функцию удаления

This commit is contained in:
Антон Чичков 2024-07-23 17:08:34 +10:00
parent 05f9484417
commit 02b88a03dc

View File

@ -8,7 +8,7 @@
Службы настраиваются для запуска из-под учётной записи lers. Если такой учётной записи нет, она будет создана. Службы настраиваются для запуска из-под учётной записи 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 Set-StrictMode -Version 1
$ErrorActionPreference = "Stop" $ErrorActionPreference = "Stop"
@ -42,24 +42,11 @@ function Get-ServerAddress
} while ($true) } while ($true)
} }
# Возвращает версию и описание ОС
function Get-OsRelease { function Get-OsRelease {
return Get-Content /etc/os-release | ConvertFrom-StringData 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 # Устанавливает рантайм aspnet
function Install-DotnetRuntime function Install-DotnetRuntime
{ {
@ -74,12 +61,6 @@ function Install-DotnetRuntime
apt-get update apt-get update
apt install aspnetcore-runtime-$dotnetRuntimeVersion -y 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 else
{ {
$os | Format-Table $os | Format-Table
@ -183,10 +164,11 @@ ExecStart=/usr/bin/dotnet $pollServiceExecutable
WantedBy=multi-user.target WantedBy=multi-user.target
"@ "@
###################################
# Установочный скрипт
###################################
###################################
# Убедимся, что запущены от ROOT. # Убедимся, что запущены от ROOT.
###################################
if ($PSVersionTable.Platform -eq "Unix") { if ($PSVersionTable.Platform -eq "Unix") {
if ( $(whoami) -ne "root") { if ( $(whoami) -ne "root") {
@ -203,9 +185,16 @@ if ($serviceManager -ne "systemd") {
exit 3; exit 3;
} }
################################## # Убедимся, что передана верная комбинация флагов
if ($uninstall -and $update)
{
Write-Error "Флаги -update и -uninstall нельзя использовать вместе.";
exit 1;
}
# Определяем откуда будем загружать пакеты. # Определяем откуда будем загружать пакеты.
##################################
if ($version) if ($version)
{ {
@ -218,8 +207,7 @@ else
$pollServiceUrl = "https://update.lers.ru/download/files/PollService.zip" $pollServiceUrl = "https://update.lers.ru/download/files/PollService.zip"
} }
# Останавливаем запущенные службы, если они есть
## Останавливаем запущенные службы, если они есть
if (Test-Path -Path $serverServiceFile) if (Test-Path -Path $serverServiceFile)
{ {
@ -231,6 +219,39 @@ if (Test-Path -Path $pollserviceServiceFile)
systemctl stop $pollserviceServiceName 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) if ($update)
{ {
# В режиме обновления игнорируем ключи -server и -pollservice # В режиме обновления игнорируем ключи -server и -pollservice