summaryrefslogtreecommitdiff
path: root/motd
diff options
context:
space:
mode:
Diffstat (limited to 'motd')
-rwxr-xr-xmotd111
1 files changed, 111 insertions, 0 deletions
diff --git a/motd b/motd
new file mode 100755
index 0000000..a41efa6
--- /dev/null
+++ b/motd
@@ -0,0 +1,111 @@
+#!/usr/bin/env tclsh
+
+# * Variables
+set var(user) $env(USER)
+set var(path) $env(PWD)
+set var(home) $env(HOME)
+
+# * somewhere in /home or /usr/home?
+#if {![string match -nocase "/home*" $var(path)]} {
+if {![string match -nocase "/home*" $var(path)] && ![string match -nocase "/usr/home*" $var(path)] } {
+ return 0
+}
+
+# * last login
+set lastlog [exec -- lastlog -u $var(user)]
+set ll(p) [lindex $lastlog 5]
+if {![string match -nocase "tty*" $ll(p)] && ![string match -nocase "pts*" $ll(p)]} {
+ set ll(1) [lindex $lastlog 7]
+ set ll(2) [lindex $lastlog 8]
+ set ll(3) [lindex $lastlog 9]
+ set ll(4) [lindex $lastlog 10]
+ set ll(5) [lindex $lastlog 6]
+} else {
+ set ll(1) [lindex $lastlog 6]
+ set ll(2) [lindex $lastlog 7]
+ set ll(3) [lindex $lastlog 8]
+ set ll(4) [lindex $lastlog 9]
+ set ll(5) [lindex $lastlog 5]
+}
+
+# * current system uptime
+set uptime [exec -- /usr/bin/cut -d. -f1 /proc/uptime]
+set up(d) [expr {$uptime/60/60/24}]
+set up(h) [expr {$uptime/60/60%24}]
+set up(m) [expr {$uptime/60%60}]
+set up(s) [expr {$uptime%60}]
+
+expr { $up(d) > 1 ? [set timemod(d) "days"] : [set timemod(d) "day"]}
+expr { $up(h) > 1 ? [set timemod(h) "hours"] : [set timemod(h) "hours"]}
+expr { $up(m) > 1 ? [set timemod(m) "minutes"] : [set timemod(m) "minutes"]}
+expr { $up(s) > 1 ? [set timemod(s) "seconds"] : [set timemod(s) "seconds"]}
+
+# * calculate usage of home directory; only use if your disk is
+# * relatively small, otherwise it will take forever!
+# set usage [lindex [exec -- /usr/bin/du -ms $var(home)] 0]
+
+# * list processes
+set psa [expr {[lindex [exec -- ps -A h | wc -l] 0]-000}]
+set psu [expr {[lindex [exec -- ps U $var(user) h | wc -l] 0]-002}]
+set verb are
+if [expr $psu < 2] {
+ if [expr $psu = 0] {
+ set psu none
+ } else {
+ set verb is
+ }
+}
+
+# * current system load
+set loadavg [exec -- /bin/cat /proc/loadavg]
+set sysload(1) [lindex $loadavg 0]
+set sysload(5) [lindex $loadavg 1]
+set sysload(15) [lindex $loadavg 2]
+
+# * memory and swap
+set memory [exec -- free -m]
+set mem(t) [lindex $memory 7]
+set mem(u) [lindex $memory 8]
+set mem(f) [lindex $memory 9]
+set mem(c) [lindex $memory 11]
+set swap(t) [lindex $memory 14]
+set swap(u) [lindex $memory 15]
+set swap(f) [lindex $memory 16]
+
+# * temperature from lm-sensors, probably need to change
+# * depending on your hardware
+set temperature [exec -- sensors | grep °C | tr -d '+']
+set tem(c) [lindex $temperature 1]
+set tem(d) [lindex $temperature 5]
+set tem(g) [lindex $temperature 45]
+
+set title "WELCOME TO MAKAI"
+
+# * length of title string + 26 for left padding
+set titlepad 42
+
+# * terminal width - 2 for the padding
+set w 70
+
+puts ""
+puts [format " \033\[01;32m%*s\033\[0m" $titlepad $title]
+puts [format " \033\[0;96m%s\033\[0m" [string repeat - $w]]
+puts [format " \033\[35mLast Login....:\033\[0m \033\[36m%s, %s %s %s from\033\[0m \033\[33m%s\033\[0m" $ll(1) $ll(2) $ll(3) $ll(4) $ll(5)]
+puts [format " \033\[35mUptime........:\033\[0m \033\[36m%s %s, %s %s, %s %s, %s %s\033\[0m" $up(d) $timemod(d) $up(h) $timemod(h) $up(m) $timemod(m) $up(s) $timemod(s)]
+puts [format " \033\[35mLoad..........:\033\[0m \033\[36m%s (1minute), %s (5minutes), %s (15minutes)\033\[0m" $sysload(1) $sysload(5) $sysload(15)]
+puts [format " \033\[35mMemory MB.....:\033\[0m \033\[36mTotal: %5d Used: %5d Free: %5d Buff/Cache: %5d" $mem(t) $mem(u) $mem(f) $mem(c)]
+puts [format " \033\[35mSwap MB.......:\033\[0m \033\[36mTotal: %5d Used: %5d Free: %5d " $swap(t) $swap(u) $swap(f)]
+puts [format " \033\[35mTemperature...:\033\[0m \033\[36mCPU: %s GPU: %s SSD: %s\033\[0m" $tem(c) $tem(g) $tem(d)]
+# puts [format " \033\[35mDisk Usage....:\033\[0m \033\[36mYou're using %sMB in %s\033\[0m" $usage $var(home)]
+puts [format " \033\[35mProcesses.....:\033\[0m \033\[36m%s total running of which %s %s yours\033\[0m" $psa $psu $verb]
+puts ""
+
+if {[file exists /etc/changelog]&&[file readable /etc/changelog]} {
+ puts " . .. More or less important system informations:\n"
+ set fp [open /etc/changelog]
+ while {-1!=[gets $fp line]} {
+ puts " ..) $line"
+ }
+ close $fp
+ puts ""
+}