- Главная конфигурация home.yml и виджеты (countdown, qbittorrent) - PowerShell и Bash скрипты для автоматической загрузки на сервер - Обновлен README с документацией
72 lines
3.3 KiB
PowerShell
72 lines
3.3 KiB
PowerShell
# PowerShell скрипт для обновления конфигурации Glance
|
||
# Использование: .\upload-glance-config.ps1 [LOCAL_DIR] [USER] [HOST]
|
||
|
||
param(
|
||
[string]$LocalDir = ".",
|
||
[string]$User = "root",
|
||
[string]$RemoteHost = "192.168.50.114"
|
||
)
|
||
|
||
$RemoteGlanceConfig = "/opt/glance/config"
|
||
$SshOpts = @("-q", "-o", "StrictHostKeyChecking=no", "-o", "UserKnownHostsFile=/dev/null")
|
||
$ScpOpts = @("-q", "-o", "StrictHostKeyChecking=no", "-o", "UserKnownHostsFile=/dev/null")
|
||
|
||
# Функция для выхода с ошибкой
|
||
function Exit-OnError {
|
||
param([string]$Message)
|
||
Write-Host "Ошибка: $Message" -ForegroundColor Red
|
||
exit 1
|
||
}
|
||
|
||
# Проверяем наличие локальной директории glance
|
||
if (-not (Test-Path $LocalDir -PathType Container)) {
|
||
Exit-OnError "Директория $LocalDir не найдена!"
|
||
}
|
||
|
||
Write-Host "========================================" -ForegroundColor Cyan
|
||
Write-Host "Обновление конфигурации Glance" -ForegroundColor Cyan
|
||
Write-Host "========================================" -ForegroundColor Cyan
|
||
|
||
# 1. Загружаем home.yml на сервер
|
||
$LocalHomeYml = Join-Path $LocalDir "home.yml"
|
||
if (Test-Path $LocalHomeYml -PathType Leaf) {
|
||
Write-Host "`n📄 Загружаем главный файл конфигурации..." -ForegroundColor Yellow
|
||
|
||
& scp @ScpOpts $LocalHomeYml "${User}@${RemoteHost}:${RemoteGlanceConfig}/glance.yml"
|
||
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Exit-OnError "Ошибка при загрузке home.yml"
|
||
}
|
||
Write-Host "✅ home.yml успешно загружен" -ForegroundColor Green
|
||
} else {
|
||
Write-Host "⚠️ Файл home.yml не найден в $LocalDir" -ForegroundColor Yellow
|
||
}
|
||
|
||
# 2. Загружаем директорию widgets рекурсивно
|
||
$LocalWidgetsDir = Join-Path $LocalDir "widgets"
|
||
if (Test-Path $LocalWidgetsDir -PathType Container) {
|
||
Write-Host "`n📦 Загружаем директорию widgets..." -ForegroundColor Yellow
|
||
|
||
# Создаем директорию widgets на сервере, если не существует
|
||
& ssh @SshOpts "${User}@${RemoteHost}" "mkdir -p ${RemoteGlanceConfig}/widgets"
|
||
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Exit-OnError "Не удалось создать директорию widgets на сервере"
|
||
}
|
||
|
||
# Копируем все файлы из widgets рекурсивно
|
||
& scp @ScpOpts -r "$LocalWidgetsDir/*" "${User}@${RemoteHost}:${RemoteGlanceConfig}/widgets/"
|
||
|
||
if ($LASTEXITCODE -ne 0) {
|
||
Exit-OnError "Ошибка при загрузке директории widgets"
|
||
}
|
||
Write-Host "✅ Директория widgets успешно загружена" -ForegroundColor Green
|
||
} else {
|
||
Write-Host "⚠️ Директория widgets не найдена в $LocalDir" -ForegroundColor Yellow
|
||
}
|
||
|
||
Write-Host "`n========================================" -ForegroundColor Cyan
|
||
Write-Host "Конфигурация успешно обновлена! 🎉" -ForegroundColor Green
|
||
Write-Host "========================================" -ForegroundColor Cyan
|
||
Write-Host "Примечание: Glance автоматически перезагрузит конфигурацию" -ForegroundColor Yellow
|