#!/usr/bin/wish

# Настройки окна
wm title . "Установка принтера"
wm geometry . 400x200
wm resizable . 0 0

# Переменные для хранения ввода
set ip ""
set password ""

# Фрейм для IP
frame .ip_frame -padx 10 -pady 5
label .ip_frame.label -text "IP адрес принтера:" -width 20 -anchor w
entry .ip_frame.entry -textvariable ip -width 20
pack .ip_frame.label .ip_frame.entry -side left -padx 5 -pady 5
pack .ip_frame -fill x

# Фрейм для пароля
frame .pass_frame -padx 10 -pady 5
label .pass_frame.label -text "Пароль SSH:" -width 20 -anchor w
entry .pass_frame.entry -textvariable password -width 20 -show "*"
pack .pass_frame.label .pass_frame.entry -side left -padx 5 -pady 5
pack .pass_frame -fill x

# Фрейм для кнопок
frame .button_frame -padx 10 -pady 10
button .button_frame.ok -text "Автоустановка" -width 12 -command {
    if {$ip eq "" || $password eq ""} {
        tk_messageBox -icon warning -message "Введите IP и пароль!" -type ok
    } else {
        execute_script "auto"
    }
}
button .button_frame.manual -text "Ручная установка" -width 12 -command {
    if {$ip eq "" || $password eq ""} {
        tk_messageBox -icon warning -message "Введите IP и пароль!" -type ok
    } else {
        execute_script "manual"
    }
}
button .button_frame.cancel -text "Отмена" -width 12 -command { exit }
pack .button_frame.ok .button_frame.manual .button_frame.cancel -side left -padx 5
pack .button_frame

# Функция выполнения скрипта
proc execute_script {mode} {
    global ip password

    set script_path "/mnt/cifs/distr1/Astra Linux/Принтеры/Драйверы/test/scripts/printer_install.sh"

    # Проверяем существование скрипта
    if {![file exists $script_path]} {
        tk_messageBox -icon error -message "Ошибка: скрипт установки не найден по пути:\n$script_path"
        return
    }

    # Формируем команду в зависимости от режима
    if {$mode eq "auto"} {
        set cmd "bash '$script_path' -noi -ip '$ip' -p '$password'"
    } else {
        set cmd "bash '$script_path' -noi -ip '$ip' -p '$password' manual"
    }

    # Выполняем команду в фоновом режиме
    if {[catch {exec /bin/sh -c $cmd &} err]} {
        tk_messageBox -icon error -message "Ошибка запуска скрипта:\n$err"
    } else {
        tk_messageBox -icon info -message "Скрипт запущен в режиме [expr {$mode eq "auto" ? "автоустановки" : "ручной установки"}]\nIP: $ip"
        exit
    }
}

# Устанавливаем фокус на поле IP
focus .ip_frame.entry

# Разрешаем закрытие окна только через кнопки
wm protocol . WM_DELETE_WINDOW { exit }
