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

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

View File

@ -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