72 lines
2.9 KiB
Diff
72 lines
2.9 KiB
Diff
diff --git a/cmd/certspotter/main.go b/cmd/certspotter/main.go
|
|
index 9730789..f2eb081 100644
|
|
--- a/cmd/certspotter/main.go
|
|
+++ b/cmd/certspotter/main.go
|
|
@@ -163,6 +163,7 @@ func main() {
|
|
logs string
|
|
noSave bool
|
|
script string
|
|
+ sendmail string
|
|
startAtEnd bool
|
|
stateDir string
|
|
stdout bool
|
|
@@ -176,6 +177,7 @@ func main() {
|
|
flag.StringVar(&flags.logs, "logs", defaultLogList, "File path or URL of JSON list of logs to monitor")
|
|
flag.BoolVar(&flags.noSave, "no_save", false, "Do not save a copy of matching certificates in state directory")
|
|
flag.StringVar(&flags.script, "script", "", "Program to execute when a matching certificate is discovered")
|
|
+ flag.StringVar(&flags.sendmail, "sendmail", "/usr/sbin/sendmail", "Path to the sendmail-compatible program to use")
|
|
flag.BoolVar(&flags.startAtEnd, "start_at_end", false, "Start monitoring logs from the end rather than the beginning (saves considerable bandwidth)")
|
|
flag.StringVar(&flags.stateDir, "state_dir", defaultStateDir(), "Directory for storing log position and discovered certificates")
|
|
flag.BoolVar(&flags.stdout, "stdout", false, "Write matching certificates to stdout")
|
|
@@ -201,6 +203,7 @@ func main() {
|
|
Verbose: flags.verbose,
|
|
Script: flags.script,
|
|
ScriptDir: defaultScriptDir(),
|
|
+ SendmailPath: flags.sendmail,
|
|
Email: flags.email,
|
|
Stdout: flags.stdout,
|
|
HealthCheckInterval: flags.healthcheck,
|
|
diff --git a/monitor/config.go b/monitor/config.go
|
|
index 1e0d60c..d1bc430 100644
|
|
--- a/monitor/config.go
|
|
+++ b/monitor/config.go
|
|
@@ -20,6 +20,7 @@ type Config struct {
|
|
WatchList WatchList
|
|
Verbose bool
|
|
SaveCerts bool
|
|
+ SendmailPath string
|
|
Script string
|
|
ScriptDir string
|
|
Email []string
|
|
diff --git a/monitor/notify.go b/monitor/notify.go
|
|
index 8fc6d09..86cabca 100644
|
|
--- a/monitor/notify.go
|
|
+++ b/monitor/notify.go
|
|
@@ -36,7 +36,7 @@ func notify(ctx context.Context, config *Config, notif notification) error {
|
|
}
|
|
|
|
if len(config.Email) > 0 {
|
|
- if err := sendEmail(ctx, config.Email, notif); err != nil {
|
|
+ if err := sendEmail(ctx, config.SendmailPath, config.Email, notif); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
@@ -62,7 +62,7 @@ func writeToStdout(notif notification) {
|
|
os.Stdout.WriteString(notif.Text() + "\n")
|
|
}
|
|
|
|
-func sendEmail(ctx context.Context, to []string, notif notification) error {
|
|
+func sendEmail(ctx context.Context, sendmailPath string, to []string, notif notification) error {
|
|
stdin := new(bytes.Buffer)
|
|
stderr := new(bytes.Buffer)
|
|
|
|
@@ -77,7 +77,7 @@ func sendEmail(ctx context.Context, to []string, notif notification) error {
|
|
args := []string{"-i", "--"}
|
|
args = append(args, to...)
|
|
|
|
- sendmail := exec.CommandContext(ctx, "/usr/sbin/sendmail", args...)
|
|
+ sendmail := exec.CommandContext(ctx, sendmailPath, args...)
|
|
sendmail.Stdin = stdin
|
|
sendmail.Stderr = stderr
|
|
|