From 600d859d1a13903d7ca5609aa368c14a38cfbe5a Mon Sep 17 00:00:00 2001 From: martin Date: Mon, 16 Mar 2026 18:29:16 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20Wizard=20=E2=80=94=20host?= =?UTF-8?q?name=20editovate=C4=BEn=C3=BD,=20resources=20v=203=20krokoch,?= =?UTF-8?q?=20oprava=20poml=C4=8Dky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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) --- ct/ubuntu.sh | 105 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 73 insertions(+), 32 deletions(-) diff --git a/ct/ubuntu.sh b/ct/ubuntu.sh index d5935aa..0a7660e 100644 --- a/ct/ubuntu.sh +++ b/ct/ubuntu.sh @@ -86,6 +86,7 @@ simple_install() { # Predvolené hodnoty pre wizard local _ct_name="Ubuntu" + local _hn="" local _ip_input="" local _gate="" local _dns="8.8.8.8 1.1.1.1" @@ -93,6 +94,7 @@ simple_install() { local _ram="$var_ram" local _cpu="$var_cpu" local _selected_users="" + local MAX_STEP=9 # Wizard so spätnou navigáciou local STEP=1 @@ -101,21 +103,39 @@ simple_install() { # --- KROK 1: Názov kontajnera --- 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" \ --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 [[ -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++)) else exit_script fi ;; - # --- KROK 2: IP adresa + gateway --- + # --- KROK 2: Hostname --- 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" \ --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" \ @@ -125,7 +145,7 @@ simple_install() { local default_gw default_gw=$(echo "$_ip_input" | cut -d'/' -f1 | sed 's/\.[0-9]*$/.1/') [[ -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" \ --ok-button "Ďalej" --cancel-button "Späť" \ --inputbox "\nZadaj gateway:" 10 58 "$_gate" \ @@ -145,9 +165,9 @@ simple_install() { fi ;; - # --- KROK 3: DNS --- - 3) - if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ + # --- KROK 4: DNS --- + 4) + if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \ --title "DNS SERVERY" \ --ok-button "Ďalej" --cancel-button "Späť" \ --inputbox "\nZadaj DNS servery (oddelené medzerou):" 10 58 "$_dns" \ @@ -159,29 +179,50 @@ simple_install() { fi ;; - # --- KROK 4: Resources --- - 4) - if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ - --title "ZDROJE" \ + # --- KROK 5: Disk --- + 5) + if result=$(whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \ + --title "DISK" \ --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 - if [[ -n "$result" ]]; then - _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 + [[ -n "$result" ]] && _disk="$result" ((STEP++)) else ((STEP--)) fi ;; - # --- KROK 5: Výber užívateľov --- - 5) + # --- KROK 6: RAM --- + 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 _selected_users="" ((STEP++)) @@ -191,7 +232,7 @@ simple_install() { checklist_args+=("${usernames[$i]}" "${key_counts[$i]} SSH kľúč(ov)" "ON") 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" \ --ok-button "Ďalej" --cancel-button "Späť" \ --checklist "\nVyber užívateľov na vytvorenie:\n(SPACE = zaškrtni, ENTER = potvrď)" \ @@ -206,10 +247,8 @@ simple_install() { fi ;; - # --- KROK 6: Potvrdenie --- - 6) - local _hn - _hn=$(echo "${_ct_name,,}" | tr -d ' ' | tr -c 'a-z0-9-' '-') + # --- KROK 9: Potvrdenie --- + 9) local _net_display="dhcp" [[ -n "$_ip_input" ]] && _net_display="$_ip_input" @@ -218,13 +257,15 @@ simple_install() { confirm_text+="IP: $_net_display\n" [[ -n "$_gate" ]] && confirm_text+="Gateway: $_gate\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" - if whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/6]" \ + if whiptail --backtitle "Ubuntu LXC Setup [Krok $STEP/$MAX_STEP]" \ --title "POTVRDENIE" \ --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 else ((STEP--)) @@ -234,7 +275,7 @@ simple_install() { done # Nastavenie premenných z wizardu - HN=$(echo "${_ct_name,,}" | tr -d ' ' | tr -c 'a-z0-9-' '-') + HN="$_hn" APP_DISPLAY_NAME="$_ct_name" if [[ -n "$_ip_input" ]]; then NET="$_ip_input"