X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=home%2Flib%2Flogin_functions.sh;h=2287d32ceffacaaed5496b36cc7761a5670a8a0e;hb=c17be636ca003e34172250a5f494f65b901fa27e;hp=e006eee32825e21e395e9fea93f8e4d19ec4c85a;hpb=d265cd11ac471b7d2596ac1c41b81e64094b788e;p=khome.git diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index e006eee..2287d32 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -5,6 +5,54 @@ d() { dict "$word" } +shell_activity_report() { + # TODO: optional concrete number output + # TODO: manual weekday calc (since forking date is so expensive) + # TODO: optional combinations of granularities: hour, weekday, month, year + history \ + | awk ' + { + # NOTE: $2 & $3 are specific to oh-my-zsh history output + date = $2 + time = $3 + d_fields = split(date, d, "-") + t_fields = split(time, t, ":") + if (t_fields && d_fields) { + # +0 to coerce number from string + month = d[2] + 0 + hour = t[1] + 0 + c = count[month, hour]++ + } + if (c > max) + max = c + } + + END { + m[ 1] = "January" + m[ 2] = "February" + m[ 3] = "March" + m[ 4] = "April" + m[ 5] = "May" + m[ 6] = "June" + m[ 7] = "July" + m[ 8] = "August" + m[ 9] = "September" + m[10] = "October" + m[11] = "November" + m[12] = "December" + for (month = 1; month <= 12; month++) { + printf "%s\n", m[month]; + for (hour=0; hour<24; hour++) { + c = count[month, hour] + printf " %2d ", hour + for (i = 1; i <= (c * 100) / max; i++) + printf "|" + printf "\n" + } + } + }' +} + top_commands() { history \ | awk '