X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=home%2Flib%2Flogin_functions.sh;h=006902863fad638cadaa0255d4452f6ce5015960;hb=22f1641ffee69609f220a143c67640d402811dc7;hp=fa45b80b88bc670fdce132ae78a35d056e2fe96c;hpb=348e2621d5266a2712141086a5dea7a5a01e4789;p=khome.git diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index fa45b80..0069028 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -380,8 +380,8 @@ bar_gauge() { printf "[" for (i=1; i<=width; i++) { - c = i <= u ? "|" : " " - printf "%c", c + c = i <= u ? "|" : "-" + printf "%s", c } printf "]\n" } @@ -392,26 +392,26 @@ bar_gauge() { ' } -motd() { - uname -srvmo - hostname | figlet - uptime - - echo - - printf 'tmux sessions: %d\n' "$(tmux ls 2> /dev/null | wc -l)" +motd_mem() { + local -r bar_width="$1" - echo - - printf 'mem ' + printf 'mem ' free \ | awk '$1 == "Mem:" {total=$2; used=$3; print used, total}' \ - | bar_gauge 73 + | 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 73 + | bar_gauge "$bar_width" +} + +motd_batt() { + local -r bar_width="$1" case "$(uname)" in 'Linux') @@ -440,12 +440,42 @@ motd() { delete device } ' \ - | bar_gauge 73 + | bar_gauge "$bar_width" ;; esac +} + +indent() { + awk -v unit="$1" '{printf "%s%s\n", unit, $0}' +} + +motd() { + local -r bar_width='60' + local -r indent_unit=' ' + + uname -srvmo + hostname | figlet + uptime echo + printf 'tmux sessions: %d\n' "$(tmux ls 2> /dev/null | wc -l)" + + echo + + echo 'Resources' + ( + motd_mem "$bar_width" + motd_disk "$bar_width" + motd_batt "$bar_width" + ) \ + | column -t \ + | indent "$indent_unit" + + echo + + echo 'Network' + echo "${indent_unit}interfaces:" (ifconfig; iwconfig) 2> /dev/null \ | awk ' /^[^ ]/ { @@ -479,16 +509,22 @@ motd() { if (device != "lo") { l = link[device] e = essid[device] - l = l ? l : "--" + l = l ? sprintf("%.0f%%", l) : "--" e = e ? e : "--" print device, address[device], e, l } } ' \ - | column -t + | column -t \ + | indent "${indent_unit}${indent_unit}" - #echo - # TODO: netstat summary + echo "${indent_unit}servers:" # WARN: ensure: $USER ALL=(ALL) NOPASSWD:/bin/netstat - #sudo -n netstat -tulpn | awk '/^udp/ && !first++ {printf "\n"} 1' + sudo -n netstat -tlnp \ + | awk 'NR > 2 {print $7}' \ + | awk -F/ '{print $2}' \ + | sort -u \ + | xargs \ + | column -t \ + | indent "${indent_unit}${indent_unit}" }