mirror of
https://github.com/EngineGPDev/Autoinstall.git
synced 2025-01-18 22:02:22 +03:00
New Features
Added check and installation of required packages Arguments added Menu added
This commit is contained in:
parent
8e583384fb
commit
b5ff2262e0
165
install.sh
165
install.sh
@ -1,12 +1,92 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Получаем внешний IP-адрес с помощью сервиса ipinfo.io
|
|
||||||
external_ip=$(curl -s ipinfo.io/ip)
|
# Установка начальных пакетов
|
||||||
|
required_packages=(sudo curl)
|
||||||
|
|
||||||
|
for package in "${required_packages[@]}"; do
|
||||||
|
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "installed"; then
|
||||||
|
clear
|
||||||
|
echo "$package не установлен. Выполняется установка..."
|
||||||
|
apt-get install -y "$package"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Определение операционной системы
|
||||||
|
verOS=`cat /etc/issue.net | awk '{print $1,$3}'`
|
||||||
|
|
||||||
|
# Проверка аргументов командной строки
|
||||||
|
if [ $# -gt 0 ]; then
|
||||||
|
# Переменные для хранения
|
||||||
|
EGP_VERSION=""
|
||||||
|
PHP_VERSION=""
|
||||||
|
IP_ADDRESS=""
|
||||||
|
|
||||||
|
# Перебор всех аргументов
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
key="$1"
|
||||||
|
|
||||||
|
case $key in
|
||||||
|
--release)
|
||||||
|
# Если передан аргумент --release, сохранить указанную версию EngineGP
|
||||||
|
EGP_VERSION="$2"
|
||||||
|
shift # Пропустить значение версии
|
||||||
|
shift # Пропустить аргумент --release
|
||||||
|
;;
|
||||||
|
--php)
|
||||||
|
# Если передан аргумент --php, сохранить указанную версию PHP
|
||||||
|
PHP_VERSION="$2"
|
||||||
|
shift # Пропустить значение версии
|
||||||
|
shift # Пропустить аргумент --php
|
||||||
|
;;
|
||||||
|
--ip)
|
||||||
|
# Если передан аргумент --ip, сохранить указанный IP-адрес
|
||||||
|
IP_ADDRESS="$2"
|
||||||
|
shift # Пропустить значение IP-адреса
|
||||||
|
shift # Пропустить аргумент --ip
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Неизвестный аргумент, вывести справку и выйти
|
||||||
|
clear
|
||||||
|
echo "Использование: ./install.sh [--release версия] [--php версия] [--ip IP-адрес]"
|
||||||
|
echo " --release версия: установить указанную версию EngineGP"
|
||||||
|
echo " --php версия: установить указанную версию PHP"
|
||||||
|
echo " --ip IP-адрес: использовать указанный IP-адрес"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Если версия EngineGP не выбрана, использовать последнюю стабильную версию
|
||||||
|
if [ -z "$EGP_VERSION" ]; then
|
||||||
|
LATEST_URL="https://resources.enginegp.com/latest"
|
||||||
|
EGP_VERSION=$(curl -s "$LATEST_URL" | awk 'NR==1 {print $2}')
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Если версия PHP не выбрана, использовать PHP 8.0 по умолчанию
|
||||||
|
if [ -z "$PHP_VERSION" ]; then
|
||||||
|
PHP_VERSION="8.0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Если IP-адрес не указан, получить внешний IP-адрес с помощью сервиса ipinfo.io
|
||||||
|
if [ -z "$IP_ADDRESS" ]; then
|
||||||
|
IP_ADDRESS=$(curl -s ipinfo.io/ip)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Если нет аргументов, получить последнюю версию EngineGP из файла на сайте
|
||||||
|
LATEST_URL="https://resources.enginegp.com/latest"
|
||||||
|
EGP_VERSION=$(curl -s "$LATEST_URL" | awk 'NR==1 {print $2}')
|
||||||
|
PHP_VERSION="8.0"
|
||||||
|
IP_ADDRESS=$(curl -s ipinfo.io/ip)
|
||||||
|
fi
|
||||||
|
|
||||||
# Проверяем, является ли полученный IP-адрес действительным IPv4 адресом
|
# Проверяем, является ли полученный IP-адрес действительным IPv4 адресом
|
||||||
if [[ $external_ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
if [[ $IP_ADDRESS =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
echo "Внешний IP-адрес: $external_ip"
|
sysIP=$IP_ADDRESS
|
||||||
else
|
else
|
||||||
|
clear
|
||||||
echo "Не удалось получить внешний IP-адрес"
|
echo "Не удалось получить внешний IP-адрес"
|
||||||
|
echo "Используй: ./install.sh [--ip IP-адрес]"
|
||||||
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Обновление таблиц и системы
|
# Обновление таблиц и системы
|
||||||
@ -15,39 +95,50 @@ sysUpdate (){
|
|||||||
apt-get -y upgrade
|
apt-get -y upgrade
|
||||||
}
|
}
|
||||||
|
|
||||||
# Установка начальных пакетов
|
while true; do
|
||||||
if ! command -v curl &> /dev/null; then
|
clear
|
||||||
echo "curl не установлен. Выполняется установка..."
|
echo "Меню установки EngineGP:"
|
||||||
apt-get install -y curl
|
echo "1. Установка панели управления"
|
||||||
fi
|
echo "2. Настройка сервера под игры"
|
||||||
|
echo "3. Установка игровых сборок"
|
||||||
|
echo "4. Системная информация"
|
||||||
|
echo "0. Выход"
|
||||||
|
|
||||||
# Проверка аргументов командной строки
|
read -p "Выберите пункт меню: " choice
|
||||||
if [ $# -gt 0 ]; then
|
|
||||||
# Если передан ключ и версия, установить указанную версию
|
|
||||||
if [ "$1" == "--release" ] && [ $# -gt 1 ]; then
|
|
||||||
VERSION="$2"
|
|
||||||
else
|
|
||||||
# Иначе, вывести справку и выйти
|
|
||||||
echo "Использование: ./install.sh [--release версия]"
|
|
||||||
echo " --release версия: установить указанную версию"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Если нет аргументов, получить последнюю версию из файла на сайте
|
|
||||||
LATEST_URL="https://resources.enginegp.com/latest"
|
|
||||||
VERSION=$(curl -s "$LATEST_URL" | awk 'NR==1 {print $2}')
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Вывод версии для информирования пользователя
|
case $choice in
|
||||||
echo "Устанавливаем версию: $VERSION"
|
1)
|
||||||
|
clear
|
||||||
|
echo "Вы выбрали: Установка панели управления"
|
||||||
|
# Здесь добавить код для установки панели управления
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
clear
|
||||||
|
echo "Вы выбрали: Настройка сервера под игры"
|
||||||
|
# Здесь добавить код для настройки сервера под игры
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
clear
|
||||||
|
echo "Вы выбрали: Установка игровых сборок"
|
||||||
|
# Здесь добавить код для установки игровых сборок
|
||||||
|
;;
|
||||||
|
4)
|
||||||
|
clear
|
||||||
|
echo "Последняя версия EngineGP: $EGP_VERSION"
|
||||||
|
echo "Текущая версия Linux: $verOS"
|
||||||
|
echo "Внешний IP-адрес: $sysIP"
|
||||||
|
echo "Версия php: $PHP_VERSION"
|
||||||
|
;;
|
||||||
|
0)
|
||||||
|
clear
|
||||||
|
echo "До свидания!"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
clear
|
||||||
|
echo "Неверный выбор. Попробуйте еще раз."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Здесь выполняется код установки CMS с использованием заданной или последней версии
|
read -p "Нажмите Enter, чтобы продолжить..."
|
||||||
# Например:
|
done
|
||||||
# wget "https://example.com/cms-$VERSION.tar.gz"
|
|
||||||
# tar -xzvf "cms-$VERSION.tar.gz"
|
|
||||||
# cd "cms-$VERSION"
|
|
||||||
# ./install.sh
|
|
||||||
|
|
||||||
# Примечание: Вам нужно заменить URL и команды установки на соответствующие для вашей CMS
|
|
||||||
|
|
||||||
echo "Установка завершена."
|
|
Loading…
Reference in New Issue
Block a user