summaryrefslogtreecommitdiff
path: root/motd
blob: a41efa64ad2118019f5830ee19686d0ca1030daf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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 ""
}