New Features

Added check and installation of required packages
Arguments added
Menu added
This commit is contained in:
Sergei Solovev 2023-08-06 01:55:44 +03:00
parent 8e583384fb
commit b5ff2262e0

View File

@ -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 "Установка завершена."