Update deployment solution for Windows compatibility
This commit is contained in:
+55
@@ -0,0 +1,55 @@
|
||||
# PowerShell-скрипт для деплоя сайта через SFTP
|
||||
# Параметры подключения к серверу
|
||||
$HOST = "kpa39l.myjino.ru"
|
||||
$PORT = "2222"
|
||||
$USERNAME = "kpa39l_dedinit"
|
||||
$REMOTE_PATH = "/domains/dedinit.ru"
|
||||
$LOCAL_PATH = "public"
|
||||
|
||||
# Путь к исполняемому файлу WinSCP
|
||||
$WINSCP_PATH = "C:\Program Files (x86)\WinSCP\WinSCP.exe"
|
||||
|
||||
# Проверяем, установлен ли WinSCP
|
||||
if (-Not (Test-Path $WINSCP_PATH)) {
|
||||
Write-Host "WinSCP не найден по пути $WINSCP_PATH"
|
||||
Write-Host "Пожалуйста, установите WinSCP или укажите правильный путь к исполняемому файлу"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Проверяем, существует ли локальная папка
|
||||
if (-Not (Test-Path $LOCAL_PATH)) {
|
||||
Write-Host "Локальная папка $LOCAL_PATH не существует"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Создаем временный скрипт для WinSCP
|
||||
$TEMP_SCRIPT = [System.IO.Path]::GetTempFileName()
|
||||
$TEMP_SCRIPT += ".txt"
|
||||
|
||||
# Формируем команды для WinSCP
|
||||
$SCRIPT_CONTENT = @"
|
||||
open sftp://${USERNAME}@${HOST}:${PORT} -hostkey=""*"" -rawsettings Password=-Zp4ep747t25
|
||||
synchronize remote ${LOCAL_PATH}/ ${REMOTE_PATH}/ -delete -transfer=binary
|
||||
close
|
||||
exit
|
||||
"@
|
||||
|
||||
# Записываем команды в временный файл
|
||||
Set-Content -Path $TEMP_SCRIPT -Value $SCRIPT_CONTENT
|
||||
|
||||
try {
|
||||
# Выполняем команды через WinSCP
|
||||
Write-Host "Начинаем деплой содержимого папки ${LOCAL_PATH} на сервер ${HOST}..."
|
||||
Start-Process -FilePath $WINSCP_PATH -ArgumentList "/script=$TEMP_SCRIPT" -Wait -NoNewWindow
|
||||
Write-Host "Деплой завершен успешно!"
|
||||
}
|
||||
catch {
|
||||
Write-Host "Произошла ошибка при деплое: $_"
|
||||
exit 1
|
||||
}
|
||||
finally {
|
||||
# Удаляем временный файл
|
||||
if (Test-Path $TEMP_SCRIPT) {
|
||||
Remove-Item $TEMP_SCRIPT
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user