🐛 fix: Odstránenie závislosti na jq — parsovanie JSON cez grep/sed
Proxmox host nemá jq nainštalované. Parsovanie users.json prepísané na grep/sed/awk v ct/ubuntu.sh aj ubuntu-install.sh. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
26
ct/ubuntu.sh
26
ct/ubuntu.sh
@@ -119,9 +119,23 @@ simple_install() {
|
||||
}
|
||||
msg_ok "Zoznam užívateľov stiahnutý"
|
||||
|
||||
# Parsovanie užívateľov pre whiptail checklist
|
||||
local user_count
|
||||
user_count=$(echo "$users_json" | jq length)
|
||||
# Parsovanie užívateľov bez jq — cez grep/sed
|
||||
local usernames=()
|
||||
local key_counts=()
|
||||
while IFS= read -r uname; do
|
||||
[[ -n "$uname" ]] && usernames+=("$uname")
|
||||
done < <(echo "$users_json" | grep '"username"' | sed 's/.*"username"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')
|
||||
|
||||
# Počet SSH kľúčov pre každého užívateľa
|
||||
local idx=0
|
||||
for uname in "${usernames[@]}"; do
|
||||
local kc
|
||||
kc=$(echo "$users_json" | sed -n "/$uname/,/\]/p" | grep 'ssh-' | wc -l)
|
||||
key_counts+=("$kc")
|
||||
idx=$((idx + 1))
|
||||
done
|
||||
|
||||
local user_count=${#usernames[@]}
|
||||
|
||||
if [[ "$user_count" -eq 0 ]]; then
|
||||
msg_warn "Žiadni užívatelia v users.json"
|
||||
@@ -129,11 +143,7 @@ simple_install() {
|
||||
else
|
||||
local checklist_args=()
|
||||
for i in $(seq 0 $((user_count - 1))); do
|
||||
local uname
|
||||
uname=$(echo "$users_json" | jq -r ".[$i].username")
|
||||
local key_count
|
||||
key_count=$(echo "$users_json" | jq ".[$i].ssh_keys | length")
|
||||
checklist_args+=("$uname" "${key_count} SSH kľúč(ov)" "ON")
|
||||
checklist_args+=("${usernames[$i]}" "${key_counts[$i]} SSH kľúč(ov)" "ON")
|
||||
done
|
||||
|
||||
SELECTED_USERS=$(whiptail --backtitle "Ubuntu LXC Setup" \
|
||||
|
||||
Reference in New Issue
Block a user