diff --git a/main.go b/main.go index 9608eaa..7706e38 100644 --- a/main.go +++ b/main.go @@ -25,6 +25,11 @@ func main() { app.Version = "2.0.2" app.Flags = []cli.Flag{ // Plugin environment + cli.BoolFlag{ + Name: "verbose", + Usage: "set verbosity", + EnvVar: "PLUGIN_VERBOSE", + }, cli.StringFlag{ Name: "from", Usage: "from address", @@ -405,6 +410,7 @@ func run(c *cli.Context) error { PullRequest: c.Int("pullRequest"), DeployTo: c.String("deployTo"), Config: Config{ + Verbose: c.Bool("verbose"), FromAddress: fromAddress, FromName: c.String("from.name"), Host: c.String("host"), diff --git a/plugin.go b/plugin.go index 03c0079..c54db3a 100644 --- a/plugin.go +++ b/plugin.go @@ -81,6 +81,7 @@ type ( } Config struct { + Verbose bool FromAddress string FromName string Host string @@ -143,6 +144,10 @@ func (p Plugin) Exec() error { } } + if p.Config.Verbose { + log.Infof ("Host [%s], Port [%d], Username [%s]", p.Config.Host, p.Config.Port, p.Config.Username); + } + if p.Config.Username == "" && p.Config.Password == "" { dialer = &gomail.Dialer{Host: p.Config.Host, Port: p.Config.Port} } else { @@ -220,7 +225,25 @@ func (p Plugin) Exec() error { if len(recipient) == 0 { continue } - message.SetAddressHeader("From", p.Config.FromAddress, p.Config.FromName) + + from_address := p.Config.FromAddress + from_name := p.Config.FromName + if from_address == "" { + from_address = p.Commit.Author.Email + if from_address == "" { + from_address = recipient + } + + if from_name == "" { // only if from_address is blank as well + from_name = p.Commit.Author.Name + } + } + + if p.Config.Verbose { + log.Infof ("Recipient [%s] From [%s <%s>]", recipient, from_name, from_address) + } + + message.SetAddressHeader("From", from_address, from_name) message.SetAddressHeader("To", recipient, "") message.SetHeader("Subject", subject) message.AddAlternative("text/plain", plainBody)