From 079214702a68620da00e28039ef79e0a67f14c04 Mon Sep 17 00:00:00 2001 From: Blallo Date: Tue, 5 May 2020 10:20:29 +0200 Subject: [PATCH] Add interactive flag --- main.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 9152fd3..b6b6e76 100644 --- a/main.go +++ b/main.go @@ -70,7 +70,7 @@ func initializeConfig(configPath, section string) *Config { func main() { var err error var configPath, section, serverAddress, user, password, to, cc, bcc, from, subject, text string - var encryption, dbg, versionFlag bool + var encryption, dbg, versionFlag, interactive bool var serverPortAux int var serverPort int64 @@ -78,6 +78,7 @@ func main() { flag.StringVar(&configPath, "conf", "", "Path to a config file (defaults to /etc/sendmail.toml)") flag.StringVar(§ion, "section", "default", "Section of the conf to read (defaults to \"default\")") flag.BoolVar(&dbg, "dbg", false, "Enable debugging output") + flag.BoolVar(&interactive, "interactive", false, "Assume composing mail manually, do not timeout waiting input") flag.StringVar(&serverAddress, "server-address", "", "The SMTP server address") flag.IntVar(&serverPortAux, "server-port", 0, "The SMTP server") flag.BoolVar(&encryption, "force-ssl", false, "Force the use of ssl (defalut: false)") @@ -104,14 +105,17 @@ func main() { if flag.NArg() == 0 { result := make(chan string, 1) go readFromConsole(result) - select { - case text = <-result: - Info.Ln("text read from console") - case <-time.After(5 * time.Minute): - Error.Ln("timeout reading from console") - os.Exit(3) + if interactive { + text = <-result + } else { + select { + case text = <-result: + Info.Ln("text read from console") + case <-time.After(5 * time.Second): + Error.Ln("timeout reading from console") + os.Exit(3) + } } - } else { for _, arg := range flag.Args() { text += fmt.Sprintf("%s\n", arg)