Mercurial Hosting > nabble
view src/nabble/utils/Utils.luan @ 62:4674ed7d56df default tip
remove n2
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 30 Sep 2023 20:25:29 -0600 |
parents | 7ecd1a4ef557 |
children |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local ipairs = Luan.ipairs or error() local try = Luan.try or error() local Io = require "luan:Io.luan" local uri = Io.uri or error() local String = require "luan:String.luan" local trim = String.trim or error() local Table = require "luan:Table.luan" local Mail = require "luan:mail/Mail.luan" local Init = require "file:conf/Init.luan" local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "Utils" local Utils = {} function Utils.ssh(domain,cmd) local cmd = "ssh -oConnectTimeout=10 -oServerAliveInterval=10 -oBatchMode=yes -oStrictHostKeyChecking=no -p 14299 administrator@"..domain.." '"..cmd.."'" local con = uri("bash:"..cmd) return con.read_text() end function Utils.ssh_is_ok(domain) return try { function() local s = Utils.ssh(domain,"echo ssh-ok") if trim(s) ~= "ssh-ok" then error("check_ssh failed with: "..s) end return true end catch = function(e) logger.error(e.get_message()) Utils.send_mail { subject = domain.." ssh_is_ok failed" body = "" } return false end } end java() local MailHome = require "java:fschmidt.util.mail.MailHome" local MailAddress = require "java:fschmidt.util.mail.MailAddress" local PlainTextContent = require "java:fschmidt.util.mail.PlainTextContent" function Utils.send_mail(mail) mail.from = mail.from or Init.domain.."<monitor@nabble.com>" mail.to = mail.to or Init.monitor_emails or error() local jmail = MailHome.newMail() jmail.setFrom( MailAddress.new(mail.from) ) local mail_to = {} for _,to in ipairs(mail.to) do mail_to[#mail_to+1] = MailAddress.new(to) end jmail.setTo( Table.unpack(mail_to) ) jmail.setSubject( mail.subject ) jmail.setContent( PlainTextContent.new(mail.body) ) MailHome.getDefaultSmtpServer().send(jmail) end return Utils