Add container summary on card face, fix df parsing for wrapped lines, collect OS info, faster startup and refresh
All checks were successful
Build-Publish / build (linux/amd64) (push) Successful in 5s
Build-Publish / build (linux/arm64) (push) Successful in 12s
Build-Publish / create-manifest (push) Successful in 2s
Build-Publish / publish-template (push) Successful in 15s

This commit is contained in:
j
2026-03-08 16:09:46 +13:00
parent 8a1ec98fbd
commit 4353afafae
5 changed files with 100 additions and 19 deletions

View File

@@ -186,13 +186,18 @@ gather_container_stats() {
echo "mem_percent=$mem_pct"
fi
# Disk (rootfs)
# Disk (rootfs) - merge wrapped lines, find the / mount
local disk_info
disk_info=$($exec_cmd df -B1 / 2>/dev/null | tail -1)
disk_info=$($exec_cmd df -B1 / 2>/dev/null | awk 'NR>1{line=line $0" "} END{print line}')
if [ -n "$disk_info" ]; then
echo "disk_total=$(echo "$disk_info" | awk '{print $2}')"
echo "disk_used=$(echo "$disk_info" | awk '{print $3}')"
echo "disk_percent=$(echo "$disk_info" | awk '{gsub(/%/,""); print $5}')"
# Extract numbers - find the fields: total used avail percent
local d_total d_used d_pct
d_total=$(echo "$disk_info" | awk '{for(i=1;i<=NF;i++) if($i+0>0 && $i !~ /%/){print $i; exit}}')
d_used=$(echo "$disk_info" | awk '{for(i=1;i<=NF;i++) if($i+0>0 && $i !~ /%/){n++; if(n==2){print $i; exit}}}')
d_pct=$(echo "$disk_info" | grep -oE '[0-9]+%' | head -1 | tr -d '%')
[ -n "$d_total" ] && echo "disk_total=$d_total"
[ -n "$d_used" ] && echo "disk_used=$d_used"
[ -n "$d_pct" ] && echo "disk_percent=$d_pct"
fi
# IP
@@ -200,6 +205,11 @@ gather_container_stats() {
ip=$($exec_cmd hostname -I 2>/dev/null | awk '{print $1}')
[ -n "$ip" ] && echo "ip=$ip"
# OS
local os_pretty
os_pretty=$($exec_cmd cat /etc/os-release 2>/dev/null | grep PRETTY_NAME | cut -d= -f2 | tr -d '"')
[ -n "$os_pretty" ] && echo "os=$os_pretty"
# Uptime
local uptime_s
uptime_s=$($exec_cmd cut -d' ' -f1 /proc/uptime 2>/dev/null | cut -d. -f1)
@@ -217,8 +227,11 @@ _sudo() {
# Proxmox LXC (pct)
if command -v pct &>/dev/null; then
_sudo pct list 2>/dev/null | tail -n +2 | while read -r vmid status _ name _; do
[ -z "$vmid" ] && continue
_sudo pct list 2>/dev/null | tail -n +2 | while read -r line; do
[ -z "$line" ] && continue
vmid=$(echo "$line" | awk '{print $1}')
status=$(echo "$line" | awk '{print $2}')
name=$(echo "$line" | awk '{print $NF}')
echo "[container:pct-${vmid}]"
echo "type=lxc"
echo "platform=proxmox"