From 68340da6bdbbc2dc0e5d11afe4be01340b002ec5 Mon Sep 17 00:00:00 2001 From: Ian Kent Date: Mon, 1 Jun 2015 20:17:32 +0100 Subject: [PATCH] Fix #2 - magically support posix and go flags --- Makefile | 7 +++++-- cmd/cmd.go | 31 +++++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index da2ef9b..dffe460 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,9 @@ -VERSION=0.1.8 +VERSION=0.1.9 -all: release +all: deps release + +deps: + go get github.com/ogier/pflag release: release-deps gox -output="build/{{.Dir}}_{{.OS}}_{{.Arch}}" . diff --git a/cmd/cmd.go b/cmd/cmd.go index f89a23c..5f2f482 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -8,11 +8,25 @@ import ( "net/smtp" "os" "os/user" + "strings" + + "github.com/ogier/pflag" ) func Go() { smtpAddr := "localhost:1025" + goflag := false + for _, g := range os.Args[1:] { + if strings.HasPrefix(g, "-") && !strings.HasPrefix(g, "--") { + if strings.HasPrefix(g, "-from ") || strings.HasPrefix(g, "-from=") || + strings.HasPrefix(g, "-smtp-addr ") || strings.HasPrefix(g, "-smtp-addr=") { + goflag = true + break + } + } + } + host, err := os.Hostname() if err != nil { host = "localhost" @@ -25,13 +39,22 @@ func Go() { } fromAddr := username + "@" + host + var recip []string - flag.StringVar(&smtpAddr, "smtp-addr", smtpAddr, "SMTP server address") - flag.StringVar(&fromAddr, "from", fromAddr, "SMTP sender") + if goflag { + flag.StringVar(&smtpAddr, "smtp-addr", smtpAddr, "SMTP server address") + flag.StringVar(&fromAddr, "from", fromAddr, "SMTP sender") - flag.Parse() + flag.Parse() + recip = flag.Args() + } else { + pflag.StringVar(&smtpAddr, "smtp-addr", smtpAddr, "SMTP server address") + pflag.StringVarP(&fromAddr, "from", "f", fromAddr, "SMTP sender") + + pflag.Parse() + recip = pflag.Args() + } - recip := flag.Args() if len(recip) == 0 { fmt.Fprintln(os.Stderr, "missing recipient") os.Exit(10)