X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=home%2Flib%2Flogin_functions.sh;h=51bc7f5afb485ec90e771bcc95f456ae1f1ebec4;hb=857e80acff709b05a4f4c2ade3911df7593c0ec8;hp=df255d77ef0514371612b16d989f123fbfc78019;hpb=936d3fb7391251227aa7a6b13f75ff40b9c7a4a6;p=khome.git diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index df255d7..51bc7f5 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -373,12 +373,13 @@ bar_gauge() { awk -v width="$width" ' { - used = $1 - total = $2 + cur = $1 + max = $2 + lab = $3 - u = num_scale(used, total, 1, width) + u = num_scale(cur, max, 1, width) - printf "[" + printf "%s%s[", lab, lab ? " " : "" for (i=1; i<=width; i++) { c = i <= u ? "|" : "-" printf "%s", c @@ -392,30 +393,9 @@ bar_gauge() { ' } -motd_mem() { - local -r bar_width="$1" - - printf 'mem ' - free \ - | awk '$1 == "Mem:" {total=$2; used=$3; print used, total}' \ - | bar_gauge "$bar_width" -} - -motd_disk() { - local -r bar_width="$1" - - printf 'disk ' - df ~ \ - | awk 'NR == 2 {used=$3; avail=$4; total=used+avail; print used, total}' \ - | bar_gauge "$bar_width" -} - motd_batt() { - local -r bar_width="$1" - case "$(uname)" in 'Linux') - printf 'batt ' upower --dump \ | awk ' /^Device:[ \t]+/ { @@ -436,11 +416,10 @@ motd_batt() { /^$/ { if (device["is_battery"] && device["path"] == "/org/freedesktop/UPower/devices/DisplayDevice") - print device["battery_percentage"], 100 + print device["battery_percentage"], 100, "batt" delete device } - ' \ - | bar_gauge "$bar_width" + ' ;; esac } @@ -465,17 +444,18 @@ motd() { echo 'Resources' ( - motd_mem "$bar_width" - motd_disk "$bar_width" - motd_batt "$bar_width" + free | awk '$1 == "Mem:" {print $3, $2, "mem"}' + df ~ | awk 'NR == 2 {print $3, $3 + $4, "disk"}' + motd_batt ) \ + | bar_gauge "$bar_width" \ | column -t \ | indent "$indent_unit" echo echo 'Network' - echo "${indent_unit}interfaces:" + echo "${indent_unit}if" (ifconfig; iwconfig) 2> /dev/null \ | awk ' /^[^ ]/ { @@ -518,13 +498,33 @@ motd() { | column -t \ | indent "${indent_unit}${indent_unit}" - echo "${indent_unit}servers:" # WARN: ensure: $USER ALL=(ALL) NOPASSWD:/bin/netstat - sudo netstat -tlnp \ + + echo "${indent_unit}-->" + + printf '%sUDP: ' "${indent_unit}${indent_unit}" + sudo -n netstat -ulnp \ + | awk 'NR > 2 {print $6}' \ + | awk -F/ '{print $2}' \ + | sort -u \ + | xargs \ + | column -t + + printf '%sTCP: ' "${indent_unit}${indent_unit}" + sudo -n netstat -tlnp \ | awk 'NR > 2 {print $7}' \ | awk -F/ '{print $2}' \ | sort -u \ | xargs \ - | column -t \ - | indent "${indent_unit}${indent_unit}" + | column -t + + echo "${indent_unit}<->" + + printf '%sTCP: ' "${indent_unit}${indent_unit}" + sudo -n netstat -tnp \ + | awk 'NR > 2 && $6 == "ESTABLISHED" {print $7}' \ + | awk -F/ '{print $2}' \ + | sort -u \ + | xargs \ + | column -t }