/
arch_linux
/
postinstall
Обзор
Документация
Войти
/
arch_linux
/
postinstall
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
menu.sh
187 строк
7 KB
БАЛИЦКИЙ АЛЕКСАНДР НИКОЛАЕВИЧ
upload files
22 ноя 2025, 12:29
22 ноя 2025, 12:29
5f07267
Код
Авторство
О чём код?
#!/bin/bash # Главный скрипт меню для установки Arch Linux # Запускает отдельные модули по выбору пользователя set -e # Цвета для вывода RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' NC='\033[0m' # No Color # Функции для вывода print_info() { echo -e "${GREEN}[INFO]${NC} $1" } print_success() { echo -e "${PURPLE}[SUCCESS]${NC} $1" } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } print_error() { echo -e "${RED}[ERROR]${NC} $1" } print_header() { echo -e "${GREEN}$1${NC}" } print_subheader() { echo -e "${CYAN}$1${NC}" } # Функция для запуска скриптов с проверкой run_script() { local script_name="$1" if [ -f "./scripts/$script_name" ]; then ./scripts/$script_name else print_error "Скрипт $script_name не найден!" return 1 fi } # Проверка root прав check_root() { if [[ $EUID -eq 0 ]]; then print_error "Не запускайте скрипт от root! Запустите от обычного пользователя." exit 1 fi } # Проверка подключения к интернету check_internet() { print_info "Проверка подключения к интернету..." if ! ping -c 1 archlinux.org &> /dev/null; then print_error "Нет подключения к интернету!" exit 1 fi print_success "Подключение к интернету установлено" } # Проверка существования директории scripts check_scripts_dir() { if [ ! -d "scripts" ]; then print_error "Директория 'scripts' не найдена!" print_info "Убедитесь, что все скрипты находятся в папке scripts/" exit 1 fi } # Загрузка общих переменных load_common_variables() { local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" local common_file="$script_dir/scripts/common.sh" if [ -f "$common_file" ]; then source "$common_file" print_success "Общие функции загружены из: $common_file" # Загружаем состояние если есть load_state else print_error "Файл common.sh не найден: $common_file" exit 1 fi } # Основное меню show_main_menu() { while true; do clear print_header "╔═══════════════════════════════════════════════╗" print_header "║ СКРИПТ УСТАНОВКИ ARCH LINUX / MANJARO ║" print_header "║ с полной настройкой системы ║" print_header "╚═══════════════════════════════════════════════╝" echo "" print_subheader "ГЛАВНОЕ МЕНЮ:" echo "" echo "1) Предварительная проверка системы" echo "2) Настройка разрешения конфликтов" echo "3) Выбор звуковой системы" echo "4) Выбор графического окружения" echo "5) Обновление системы и базовые пакеты" echo "6) Установка AUR помощников (Paru, Pamac)" echo "7) Установка оптимизаций процессора" echo "8) Установка драйверов видеокарты" echo "9) Установка звуковой системы" echo "10) Настройка Bluetooth" echo "11) Настройка WiFi" echo "12) Установка языков программирования" echo "13) Установка Arduino" echo "14) Установка PortProton" echo "15) Установка графического окружения" echo "16) Установка дополнительных утилит" echo "17) Настройка окружения пользователя" echo "18) Тестирование системы" echo "19) Показать итоги установки" echo "20) Управление пользователями и группами" echo "21) Автоматическая настройка пользователя" echo "22) ПОЛНАЯ УСТАНОВКА (все пункты)" echo "23) Управление SSH ключами" echo "" echo "0) Выход" echo "" read -p "Выберите пункт меню (0-23): " choice case $choice in 1) run_script "01_pre_check.sh" ;; 2) run_script "02_conflict_resolution.sh" ;; 3) run_script "03_audio_selection.sh" ;; 4) run_script "04_desktop_selection.sh" ;; 5) run_script "05_system_base.sh" ;; 6) run_script "06_aur_helpers.sh" ;; 7) run_script "07_cpu_optimizations.sh" ;; 8) run_script "08_gpu_drivers.sh" ;; 9) run_script "09_audio_setup.sh" ;; 10) run_script "10_bluetooth_setup.sh" ;; 11) run_script "11_wifi_setup.sh" ;; 12) run_script "12_programming_langs.sh" ;; 13) run_script "13_arduino_setup.sh" ;; 14) run_script "14_portproton_setup.sh" ;; 15) run_script "15_desktop_setup.sh" ;; 16) run_script "16_utils_setup.sh" ;; 17) run_script "17_environment_setup.sh" ;; 18) run_script "18_system_test.sh" ;; 19) run_script "19_installation_summary.sh" ;; 20) run_script "21_user_management.sh" ;; 21) run_script "22_auto_user_setup.sh" ;; 22) run_script "20_full_installation.sh" ;; 23) run_script "23_ssh_management.sh" ;; 0) print_info "Выход..." exit 0 ;; *) print_error "Неверный выбор. Попробуйте снова." sleep 2 ;; esac if [ $? -ne 0 ]; then print_error "Ошибка выполнения скрипта. Нажмите Enter для продолжения..." read else print_success "Операция завершена успешно. Нажмите Enter для продолжения..." read fi done } # Основная функция main() { check_root check_internet check_scripts_dir load_common_variables show_main_menu } # Запуск основной функции main "$@"