> Вот поинт в том, что если тебе что-то не хватило, ты можешь
> заниматься "махровым программизмом" на шелле или чём захочешь.Может я чего-то не понимаю в этой жизни, но там ни шаблон уведомления не поменять, ни тем более метод нотификации без переписывания этой части в go'шном коде:
// Mail notifications.
func notify(check *Check, subject *string, message *string) {
// Make the message.
var msg bytes.Buffer
msg.WriteString("To: ")
msg.WriteString(check.Notify)
msg.WriteString("\nSubject: ")
msg.WriteString(*subject)
msg.WriteString("\nX-Mailer: jsonmon\n\n")
if message != nil {
msg.WriteString(*message)
}
msg.WriteString("\n.\n")
// And send it.
sendmail := exec.Command("/usr/sbin/sendmail", "-t")
stdin, _ := sendmail.StdinPipe()
err := sendmail.Start()
if err != nil {
fmt.Fprint(os.Stderr, "<3>", err, "\n")
}
io.WriteString(stdin, msg.String())
sendmail.Wait()
}
> Не хватает встроенной web check (мне как автору, кстати, не хватает) --
> напиши свою и вызывай её как shell. У меня как shell-чек
Это то понятно. Но если вспоминать про конкурентность и масштабируемость, это уже не про проверки на шелле вызываемые так. Хотя для "домашнего сервера" - сойдет.
> Ровно и то же с нотификейшнами. Не устраивает слать на системный MTA
> -- пиши свой скрипт, который будет отсылать куда угодно.
Насколько я понимаю код, notify() не подразумевает вызова чего либо кроме hardcoded sendmail'а и ожидает вполне конкретное, sendmail-специфичное поведение stdin.
> Собственно, это вся основная функциональность программы, и, по моему, она расширяема на
> привычном для админах языке без лазанья в код.
Эээ? Без переписывания функции notify() в go'шном коде там вроде бы вообще ничего связанного с уведомлениями поменять невозможно в принципе? Ну так, глядя в код. Да и дока утверждает что без sendmail вы дескать пролетаете.