🐛 fix: Wizard — hostname editovateľný, resources v 3 krokoch, oprava pomlčky

- Krok 1: Názov kontajnera (zobrazenie v Proxmoxe)
- Krok 2: Hostname (editovateľný, predvyplnený z názvu)
- Krok 3: IP + gateway
- Krok 4: DNS
- Krok 5: Disk
- Krok 6: RAM
- Krok 7: CPU
- Krok 8: Užívatelia
- Krok 9: Potvrdenie
- Oprava trailing pomlčky v hostname (sed orezanie)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
martin
2026-03-16 18:29:16 +01:00
parent 0ff8a797fe
commit 600d859d1a

View File

@@ -86,6 +86,7 @@ simple_install() {
# Predvolené hodnoty pre wizard # Predvolené hodnoty pre wizard
local _ct_name="Ubuntu" local _ct_name="Ubuntu"
local _hn=""
local _ip_input="" local _ip_input=""
local _gate="" local _gate=""
local _dns="8.8.8.8 1.1.1.1" local _dns="8.8.8.8 1.1.1.1"
@@ -93,6 +94,7 @@ simple_install() {
local _ram="$var_ram" local _ram="$var_ram"
local _cpu="$var_cpu" local _cpu="$var_cpu"
local _selected_users="" local _selected_users=""
local MAX_STEP=9
# Wizard so spätnou navigáciou # Wizard so spätnou navigáciou
local STEP=1 local STEP=1
@@ -101,21 +103,39 @@ simple_install() {
# --- KROK 1: Názov kontajnera --- # --- KROK 1: Názov kontajnera ---
1) 1)
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "NÁZOV KONTAJNERA" \ --title "NÁZOV KONTAJNERA" \
--ok-button "Ďalej" --cancel-button "Zrušiť" \ --ok-button "Ďalej" --cancel-button "Zrušiť" \
--inputbox "\nZadaj názov kontajnera (zobrazí sa v Proxmoxe):\n\nHostname sa vytvorí automaticky malými písmenami." 12 58 "$_ct_name" \ --inputbox "\nZadaj názov kontajnera (zobrazí sa v Proxmoxe):" 10 58 "$_ct_name" \
3>&1 1>&2 2>&3); then 3>&1 1>&2 2>&3); then
[[ -n "$result" ]] && _ct_name="$result" [[ -n "$result" ]] && _ct_name="$result"
# Predvyplň hostname z názvu ak ešte nebol zadaný
[[ -z "$_hn" ]] && _hn=$(echo "${_ct_name,,}" | tr -d ' ' | sed 's/[^a-z0-9-]/-/g; s/^-*//; s/-*$//')
((STEP++)) ((STEP++))
else else
exit_script exit_script
fi fi
;; ;;
# --- KROK 2: IP adresa + gateway --- # --- KROK 2: Hostname ---
2) 2)
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "HOSTNAME" \
--ok-button "Ďalej" --cancel-button "Späť" \
--inputbox "\nHostname kontajnera (malé písmená, čísla, pomlčky):" 10 58 "$_hn" \
3>&1 1>&2 2>&3); then
if [[ -n "$result" ]]; then
_hn=$(echo "${result,,}" | tr -d ' ' | sed 's/[^a-z0-9-]/-/g; s/^-*//; s/-*$//')
fi
((STEP++))
else
((STEP--))
fi
;;
# --- KROK 3: IP adresa + gateway ---
3)
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "IP ADRESA" \ --title "IP ADRESA" \
--ok-button "Ďalej" --cancel-button "Späť" \ --ok-button "Ďalej" --cancel-button "Späť" \
--inputbox "\nZadaj statickú IP adresu s maskou\n(napr. 192.168.1.100/24)\n\nAlebo nechaj prázdne pre DHCP:" 12 58 "$_ip_input" \ --inputbox "\nZadaj statickú IP adresu s maskou\n(napr. 192.168.1.100/24)\n\nAlebo nechaj prázdne pre DHCP:" 12 58 "$_ip_input" \
@@ -125,7 +145,7 @@ simple_install() {
local default_gw local default_gw
default_gw=$(echo "$_ip_input" | cut -d'/' -f1 | sed 's/\.[0-9]*$/.1/') default_gw=$(echo "$_ip_input" | cut -d'/' -f1 | sed 's/\.[0-9]*$/.1/')
[[ -z "$_gate" ]] && _gate="$default_gw" [[ -z "$_gate" ]] && _gate="$default_gw"
if gw_result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ if gw_result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "GATEWAY" \ --title "GATEWAY" \
--ok-button "Ďalej" --cancel-button "Späť" \ --ok-button "Ďalej" --cancel-button "Späť" \
--inputbox "\nZadaj gateway:" 10 58 "$_gate" \ --inputbox "\nZadaj gateway:" 10 58 "$_gate" \
@@ -145,9 +165,9 @@ simple_install() {
fi fi
;; ;;
# --- KROK 3: DNS --- # --- KROK 4: DNS ---
3) 4)
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "DNS SERVERY" \ --title "DNS SERVERY" \
--ok-button "Ďalej" --cancel-button "Späť" \ --ok-button "Ďalej" --cancel-button "Späť" \
--inputbox "\nZadaj DNS servery (oddelené medzerou):" 10 58 "$_dns" \ --inputbox "\nZadaj DNS servery (oddelené medzerou):" 10 58 "$_dns" \
@@ -159,29 +179,50 @@ simple_install() {
fi fi
;; ;;
# --- KROK 4: Resources --- # --- KROK 5: Disk ---
4) 5)
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "ZDROJE" \ --title "DISK" \
--ok-button "Ďalej" --cancel-button "Späť" \ --ok-button "Ďalej" --cancel-button "Späť" \
--inputbox "\nDisk (GB) / RAM (MB) / CPU (jadrá)\noddelené medzerou:" 10 58 "$_disk $_ram $_cpu" \ --inputbox "\nVeľkosť disku v GB:" 10 58 "$_disk" \
3>&1 1>&2 2>&3); then 3>&1 1>&2 2>&3); then
if [[ -n "$result" ]]; then [[ -n "$result" ]] && _disk="$result"
_disk=$(echo "$result" | awk '{print $1}')
_ram=$(echo "$result" | awk '{print $2}')
_cpu=$(echo "$result" | awk '{print $3}')
[[ -z "$_disk" ]] && _disk="$var_disk"
[[ -z "$_ram" ]] && _ram="$var_ram"
[[ -z "$_cpu" ]] && _cpu="$var_cpu"
fi
((STEP++)) ((STEP++))
else else
((STEP--)) ((STEP--))
fi fi
;; ;;
# --- KROK 5: Výber užívateľov --- # --- KROK 6: RAM ---
5) 6)
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "RAM" \
--ok-button "Ďalej" --cancel-button "Späť" \
--inputbox "\nVeľkosť RAM v MB:" 10 58 "$_ram" \
3>&1 1>&2 2>&3); then
[[ -n "$result" ]] && _ram="$result"
((STEP++))
else
((STEP--))
fi
;;
# --- KROK 7: CPU ---
7)
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "CPU" \
--ok-button "Ďalej" --cancel-button "Späť" \
--inputbox "\nPočet CPU jadier:" 10 58 "$_cpu" \
3>&1 1>&2 2>&3); then
[[ -n "$result" ]] && _cpu="$result"
((STEP++))
else
((STEP--))
fi
;;
# --- KROK 8: Výber užívateľov ---
8)
if [[ "$user_count" -eq 0 ]]; then if [[ "$user_count" -eq 0 ]]; then
_selected_users="" _selected_users=""
((STEP++)) ((STEP++))
@@ -191,7 +232,7 @@ simple_install() {
checklist_args+=("${usernames[$i]}" "${key_counts[$i]} SSH kľúč(ov)" "ON") checklist_args+=("${usernames[$i]}" "${key_counts[$i]} SSH kľúč(ov)" "ON")
done done
if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "UŽÍVATELIA" \ --title "UŽÍVATELIA" \
--ok-button "Ďalej" --cancel-button "Späť" \ --ok-button "Ďalej" --cancel-button "Späť" \
--checklist "\nVyber užívateľov na vytvorenie:\n(SPACE = zaškrtni, ENTER = potvrď)" \ --checklist "\nVyber užívateľov na vytvorenie:\n(SPACE = zaškrtni, ENTER = potvrď)" \
@@ -206,10 +247,8 @@ simple_install() {
fi fi
;; ;;
# --- KROK 6: Potvrdenie --- # --- KROK 9: Potvrdenie ---
6) 9)
local _hn
_hn=$(echo "${_ct_name,,}" | tr -d ' ' | tr -c 'a-z0-9-' '-')
local _net_display="dhcp" local _net_display="dhcp"
[[ -n "$_ip_input" ]] && _net_display="$_ip_input" [[ -n "$_ip_input" ]] && _net_display="$_ip_input"
@@ -218,13 +257,15 @@ simple_install() {
confirm_text+="IP: $_net_display\n" confirm_text+="IP: $_net_display\n"
[[ -n "$_gate" ]] && confirm_text+="Gateway: $_gate\n" [[ -n "$_gate" ]] && confirm_text+="Gateway: $_gate\n"
confirm_text+="DNS: $_dns\n" confirm_text+="DNS: $_dns\n"
confirm_text+="Disk: ${_disk}GB RAM: ${_ram}MB CPU: ${_cpu}\n" confirm_text+="Disk: ${_disk}GB\n"
confirm_text+="RAM: ${_ram}MB\n"
confirm_text+="CPU: ${_cpu} jadier\n"
[[ -n "$_selected_users" ]] && confirm_text+="Užívatelia: $_selected_users\n" [[ -n "$_selected_users" ]] && confirm_text+="Užívatelia: $_selected_users\n"
if whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ if whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \
--title "POTVRDENIE" \ --title "POTVRDENIE" \
--ok-button "Inštalovať" --cancel-button "Späť" \ --ok-button "Inštalovať" --cancel-button "Späť" \
--yesno "$confirm_text\nPokračovať s inštaláciou?" 18 58; then --yesno "$confirm_text\nPokračovať s inštaláciou?" 20 58; then
break break
else else
((STEP--)) ((STEP--))
@@ -234,7 +275,7 @@ simple_install() {
done done
# Nastavenie premenných z wizardu # Nastavenie premenných z wizardu
HN=$(echo "${_ct_name,,}" | tr -d ' ' | tr -c 'a-z0-9-' '-') HN="$_hn"
APP_DISPLAY_NAME="$_ct_name" APP_DISPLAY_NAME="$_ct_name"
if [[ -n "$_ip_input" ]]; then if [[ -n "$_ip_input" ]]; then
NET="$_ip_input" NET="$_ip_input"