From af2afe9598d7745fd2492154e63d66733922ae79 Mon Sep 17 00:00:00 2001 From: amd64fox Date: Sat, 19 Feb 2022 06:18:20 +0300 Subject: [PATCH] powershell and curl check Added powershell and curl checks before installation --- Install.bat | 92 +++++++++++++++++++++++++++++++--------------- Install_Rus.bat | 98 ++++++++++++++++++++++++++++++++----------------- 2 files changed, 127 insertions(+), 63 deletions(-) diff --git a/Install.bat b/Install.bat index cae88f3..e5294e9 100644 --- a/Install.bat +++ b/Install.bat @@ -1,41 +1,73 @@ @echo off Setlocal EnableDelayedExpansion +set "exec=powershell $PSVersionTable.PSVersion.major" +for /f %%i in ('%exec%') do set ps-v=%%i 2>nul +if %ps-v% LEQ 2 ( + Echo Powershell %ps-v%is not supported + @echo. + Echo Please read the instruction "Outdated versions of PowerShell" at the following link + @echo. + Echo "https://github.com/amd64fox/SpotX#possible-problems" + @echo. + pause + exit +) +curl -V >nul 2>&1 +if %errorlevel% EQU 9009 ( + echo "Curl" command line utility not found + @echo. + echo Please follow the link, download and install "Curl" manually + @echo. + echo "http://www.confusedbycode.com/curl/#downloads" + @echo. + pause + exit +) for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1') do set STATUS_CODE=%%i 2>nul if %STATUS_CODE% EQU 200 ( -powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1' | Invoke-Expression}" + powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1' | Invoke-Expression}" ) if %STATUS_CODE% LSS 1 ( -echo No network connection -echo Trying to reconnect via... -TIMEOUT /T 5 -cls -for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1') do set STATUS_CODE=%%i 2>nul -if "!STATUS_CODE!" EQU "200 " ( -cls -powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1' | Invoke-Expression}" -) else ( -echo Error again -echo Check your internet connection -echo Script stopped -pause -exit -) + echo No network connection + @echo. + echo Trying to reconnect via... + TIMEOUT /T 5 + cls + for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1') do set STATUS_CODE=%%i 2>nul + if "!STATUS_CODE!" EQU "200 " ( + cls + powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1' | Invoke-Expression}" + ) else ( + echo Error again + @echo. + echo Check your internet connection + @echo. + echo Script stopped + @echo. + pause + exit + ) ) if %STATUS_CODE% GTR 100 if not %STATUS_CODE% EQU 200 ( -echo Failed to connect to github.com -echo HTTP response code %STATUS_CODE% -echo Trying to reconnect via... -TIMEOUT /T 5 -cls -for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1') do set STATUS_CODE=%%i 2>nul -if "!STATUS_CODE!" EQU "200 " ( -cls -powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1' | Invoke-Expression}" -) else ( -echo Error again -echo Try to run after some time -echo Script stopped -) + echo Failed to connect to github.com + @echo. + echo HTTP response code %STATUS_CODE% + @echo. + echo Trying to reconnect via... + TIMEOUT /T 5 + cls + for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1') do set STATUS_CODE=%%i 2>nul + if "!STATUS_CODE!" EQU "200 " ( + cls + powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install.ps1' | Invoke-Expression}" + ) else ( + echo Error again + @echo. + echo Try to run after some time + @echo. + echo Script stopped + @echo. + ) ) pause exit \ No newline at end of file diff --git a/Install_Rus.bat b/Install_Rus.bat index 08671d4..11b1f85 100644 --- a/Install_Rus.bat +++ b/Install_Rus.bat @@ -1,45 +1,77 @@ @echo off Setlocal EnableDelayedExpansion +set "exec=powershell $PSVersionTable.PSVersion.major" +for /f %%i in ('%exec%') do set ps-v=%%i 2>nul chcp 65001 >nul +if %ps-v% LEQ 2 ( + echo Powershell %ps-v%не поддерживается + @echo. + echo Пожалуйста, прочитайте инструкцию "Устаревшие версии PowerShell" по следующей ссылке + @echo. + echo "https://4pda.to/forum/index.php?act=findpost&pid=104279894&anchor=outdated_versions" + @echo. + pause + exit +) +curl -V >nul 2>&1 +if %errorlevel% EQU 9009 ( + echo Команда "Curl" отсутствует в системе + @echo. + echo Пожалуйста, перейдите по следующей ссылке для ручной установки "Curl" + @echo. + echo "http://www.confusedbycode.com/curl/#downloads" + @echo. + pause + exit +) for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1') do set STATUS_CODE=%%i 2>nul if %STATUS_CODE% EQU 200 ( -chcp 866 >nul -powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1').Content | Invoke-Expression}" + chcp 866 >nul + powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1').Content | Invoke-Expression}" ) if %STATUS_CODE% LSS 1 ( -echo Нет подключения к сети -echo Попытка повторного подключения через ... -TIMEOUT /T 5 -cls -for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1') do set STATUS_CODE=%%i 2>nul -if "!STATUS_CODE!" EQU "200 " ( -cls -chcp 866 >nul -powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1').Content | Invoke-Expression}" -) else ( -echo Снова ошибка -echo Проверьте свое интернет соединение -echo Скрипт остановлен -pause -exit -) + echo Нет подключения к сети + @echo. + echo Попытка повторного подключения через ... + TIMEOUT /T 5 + cls + for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1') do set STATUS_CODE=%%i 2>nul + if "!STATUS_CODE!" EQU "200 " ( + cls + chcp 866 >nul + powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1').Content | Invoke-Expression}" + ) else ( + echo Снова ошибка + @echo. + echo Проверьте свое интернет соединение + @echo. + echo Скрипт остановлен + @echo. + pause + exit + ) ) if %STATUS_CODE% GTR 100 if not %STATUS_CODE% EQU 200 ( -echo Не удалось подключиться к github.com -echo Код ответа HTTP %STATUS_CODE% -echo Попытка повторного подключения через ... -TIMEOUT /T 5 -cls -for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1') do set STATUS_CODE=%%i 2>nul -if "!STATUS_CODE!" EQU "200 " ( -cls -chcp 866 >nul -powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1').Content | Invoke-Expression}" -) else ( -echo Снова ошибка -echo Попробуйте запустить спустя некоторое время -echo Скрипт остановлен -) + echo Не удалось подключиться к github.com + @echo. + echo Код ответа HTTP %STATUS_CODE% + @echo. + echo Попытка повторного подключения через ... + TIMEOUT /T 5 + cls + for /f %%i in ('curl --write-out %%{http_code} --silent --output /dev/null --insecure https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1') do set STATUS_CODE=%%i 2>nul + if "!STATUS_CODE!" EQU "200 " ( + cls + chcp 866 >nul + powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12}"; "& {(Invoke-WebRequest -UseBasicParsing 'https://raw.githubusercontent.com/amd64fox/SpotX/main/Install_rus.ps1').Content | Invoke-Expression}" + ) else ( + echo Снова ошибка + @echo. + echo Попробуйте запустить спустя некоторое время + @echo. + echo Скрипт остановлен + @echo. + ) ) pause exit \ No newline at end of file