Add Mail card
This commit is contained in:
1 parent
b94343722f
commit
ca45a90930
2 files changed
+115
-46
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user