Add Mail card

This commit is contained in:
josh committed 2026-04-20 22:19:50 -04:00
1 parent b94343722f
commit ca45a90930
2 files changed
+115 -46

No files matched your search

+29
View File
@@ -4,6 +4,7 @@ require "socket"
require "fileutils"
require "json"
require "shellwords"
require "etc"
SOCKET_PATH = "/run/malpd/malpd.sock"
@@ -212,6 +213,33 @@ def read_server_info
info
end
def read_mail
users = []
["root", "josh"].each do |user|
begin
home = Etc.getpwnam(user).dir
rescue ArgumentError
next
end
count = 0
mbox = ["/var/mail/#{user}", "/var/spool/mail/#{user}"].find { |p| File.exist?(p) }
if mbox
content = File.read(mbox) rescue ""
count = content.scan(/^From /).size
end
users << {
"user" => user,
"count" => count,
"dead_letter" => File.exist?(File.join(home, "dead.letter"))
}
end
{ "type" => "mail", "users" => users }
end
def read_ups
out = `apcaccess 2>/dev/null`
return nil unless $?.success? && !out.empty?
@@ -279,6 +307,7 @@ def handle_info(conn)
info.concat(read_virtual_machines)
info << read_server_info
info << read_mail
if (ups = read_ups)
info << ups