Last active
April 24, 2026 10:16
-
-
Save Hammer2900/6972341e09557dc807ae889fc929c3c0 to your computer and use it in GitHub Desktop.
auto installer stellaris old version include
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # Цвета для красоты | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| RED='\033[0;31m' | |
| CYAN='\033[0;36m' | |
| NC='\033[0m' # No Color | |
| clear | |
| echo -e "${CYAN}======================================================${NC}" | |
| echo -e "${CYAN} Мастер автоматической развертки Stellaris GOG ${NC}" | |
| echo -e "${CYAN}======================================================${NC}" | |
| echo "" | |
| # Включаем правильную обработку пустых результатов (если файлов нет) | |
| shopt -s nullglob | |
| # Ищем базовые установщики в текущей папке | |
| base_installers=(stellaris_*.sh) | |
| if [ ${#base_installers[@]} -eq 0 ]; then | |
| echo -e "${RED}Ошибка: Базовые установщики stellaris_*.sh не найдены!${NC}" | |
| exit 1 | |
| fi | |
| # Массивы для хранения данных | |
| versions=() | |
| dlc_counts=() | |
| echo -e "Идет сканирование версий и подсчет DLC...\n" | |
| # Собираем информацию о версиях | |
| for installer in "${base_installers[@]}"; do | |
| # Вытаскиваем версию (например, 3_10_4_69706) | |
| ver=$(echo "$installer" | sed 's/stellaris_\(.*\)\.sh/\1/') | |
| versions+=("$ver") | |
| # Считаем DLC в папке dlcs/ | |
| count=0 | |
| for dlc in dlcs/*.sh; do | |
| # Особое правило для 4.3.4 (подхватываем и 4.2.4, т.к. они из одной волны релизов) | |
| if [[ "$ver" == "4_3_4_90202" ]]; then | |
| if [[ "$dlc" == *"4_3_4"* || "$dlc" == *"4_2_4"* ]]; then | |
| ((count++)) | |
| fi | |
| else | |
| if [[ "$dlc" == *"$ver"* ]]; then | |
| ((count++)) | |
| fi | |
| fi | |
| done | |
| dlc_counts+=("$count") | |
| done | |
| # Выводим меню | |
| echo -e "${YELLOW}Найдены следующие версии игры:${NC}" | |
| for i in "${!versions[@]}"; do | |
| num=$((i+1)) | |
| echo -e " [${GREEN}$num${NC}] Версия ${CYAN}${versions[$i]}${NC} (Дополнений найдено: ${YELLOW}${dlc_counts[$i]}${NC})" | |
| done | |
| echo -e " [${RED}0${NC}] Выход" | |
| echo "" | |
| # Ждем выбора пользователя | |
| selected_index=-1 | |
| while true; do | |
| read -p "Введите цифру нужной версии: " choice | |
| if [[ "$choice" == "0" ]]; then | |
| echo "Выход..." | |
| exit 0 | |
| fi | |
| # Проверяем, что введено число и оно в пределах меню | |
| if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -le "${#versions[@]}" ]; then | |
| selected_index=$((choice-1)) | |
| break | |
| else | |
| echo -e "${RED}Неверный ввод. Пожалуйста, введите цифру от 1 до ${#versions[@]}.${NC}" | |
| fi | |
| done | |
| SELECTED_VER="${versions[$selected_index]}" | |
| BASE_INSTALLER="stellaris_${SELECTED_VER}.sh" | |
| echo -e "\nВыбрана версия: ${GREEN}$SELECTED_VER${NC}" | |
| echo -e "Будет установлен базовый пакет и ${YELLOW}${dlc_counts[$selected_index]}${NC} дополнений.\n" | |
| # Спрашиваем путь установки и проверяем его | |
| while true; do | |
| echo -e "${YELLOW}Укажите абсолютный путь для установки (например: /home/user/Games/Stellaris):${NC}" | |
| read -p "> " INSTALL_PATH | |
| if [[ -z "$INSTALL_PATH" ]]; then | |
| echo -e "${RED}Путь не может быть пустым!${NC}" | |
| continue | |
| fi | |
| # Проверяем существует ли папка | |
| if [[ -d "$INSTALL_PATH" ]]; then | |
| # Если существует, проверяем пустая ли она | |
| if [[ -z "$(ls -A "$INSTALL_PATH")" ]]; then | |
| echo -e "${GREEN}Папка существует и пуста. Отлично!${NC}" | |
| break | |
| else | |
| echo -e "${RED}Ошибка: Папка '$INSTALL_PATH' не пуста! Выберите другую папку или очистите эту.${NC}\n" | |
| fi | |
| else | |
| # Если не существует, пробуем создать | |
| echo "Папка не существует. Пытаюсь создать..." | |
| if mkdir -p "$INSTALL_PATH"; then | |
| echo -e "${GREEN}Папка успешно создана!${NC}" | |
| break | |
| else | |
| echo -e "${RED}Ошибка: Нет прав для создания папки по этому пути. Попробуйте другой путь.${NC}\n" | |
| fi | |
| fi | |
| done | |
| echo -e "\n${CYAN}======================================================${NC}" | |
| echo -e "${GREEN}НАЧИНАЮ УСТАНОВКУ В: $INSTALL_PATH${NC}" | |
| echo -e "${CYAN}======================================================${NC}" | |
| # 1. Установка базовой игры | |
| echo -e "\n${YELLOW}---> Шаг 1: Установка базовой игры ($BASE_INSTALLER)...${NC}" | |
| bash "$BASE_INSTALLER" -- --i-agree-to-all-licenses --noreadme --noprompt --destination "$INSTALL_PATH" | |
| if [ $? -ne 0 ]; then | |
| echo -e "${RED}Ошибка при установке базовой игры! Прерываю процесс.${NC}" | |
| exit 1 | |
| fi | |
| # 2. Установка DLC | |
| echo -e "\n${YELLOW}---> Шаг 2: Установка дополнений (DLC)...${NC}" | |
| for dlc in dlcs/*.sh; do | |
| should_install=false | |
| if [[ "$SELECTED_VER" == "4_3_4_90202" ]]; then | |
| if [[ "$dlc" == *"4_3_4"* || "$dlc" == *"4_2_4"* ]]; then | |
| should_install=true | |
| fi | |
| else | |
| if [[ "$dlc" == *"$SELECTED_VER"* ]]; then | |
| should_install=true | |
| fi | |
| fi | |
| if [ "$should_install" = true ]; then | |
| dlc_name=$(basename "$dlc") | |
| echo -e "Установка: ${CYAN}$dlc_name${NC}" | |
| bash "$dlc" -- --i-agree-to-all-licenses --noreadme --noprompt --destination "$INSTALL_PATH" | |
| fi | |
| done | |
| echo -e "\n${GREEN}======================================================${NC}" | |
| echo -e "${GREEN}УСТАНОВКА УСПЕШНО ЗАВЕРШЕНА!${NC}" | |
| echo -e "${GREEN}======================================================${NC}" | |
| echo -e "Ваша игра находится в папке: $INSTALL_PATH" | |
| echo -e "${YELLOW}Примечание:${NC} Если вам нужны моды из папки 'non-gog' (.tar), распакуйте их вручную в папку dlc/ установленной игры." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment