Add HYDROXIDE_BRIDGE_PASS env variable

Useful for automation.
This commit is contained in:
Simon Ser 2021-11-10 14:35:02 +01:00
parent 7e74bdc0a8
commit 9876df6309
1 changed files with 22 additions and 18 deletions

View File

@ -61,6 +61,14 @@ func askPass(prompt string) ([]byte, error) {
return b, err return b, err
} }
func askBridgePass() (string, error) {
if v := os.Getenv("HYDROXIDE_BRIDGE_PASS"); v != "" {
return v, nil
}
b, err := askPass("Bridge password")
return string(b), err
}
func listenAndServeSMTP(addr string, debug bool, authManager *auth.Manager, tlsConfig *tls.Config) error { func listenAndServeSMTP(addr string, debug bool, authManager *auth.Manager, tlsConfig *tls.Config) error {
be := smtpbackend.New(authManager) be := smtpbackend.New(authManager)
s := smtp.NewServer(be) s := smtp.NewServer(be)
@ -200,7 +208,11 @@ Global options:
-tls-key /path/to/key.pem -tls-key /path/to/key.pem
Path to the certificate key to use for incoming connections (Optional) Path to the certificate key to use for incoming connections (Optional)
-tls-client-ca /path/to/ca.pem -tls-client-ca /path/to/ca.pem
If set, clients must provide a certificate signed by the given CA (Optional)` If set, clients must provide a certificate signed by the given CA (Optional)
Environment variables:
HYDROXIDE_BRIDGE_PASS Don't prompt for the bridge password, use this variable instead
`
func main() { func main() {
flag.BoolVar(&debug, "debug", false, "Enable debug logs") flag.BoolVar(&debug, "debug", false, "Enable debug logs")
@ -228,7 +240,7 @@ func main() {
sendmailCmd := flag.NewFlagSet("sendmail", flag.ExitOnError) sendmailCmd := flag.NewFlagSet("sendmail", flag.ExitOnError)
flag.Usage = func() { flag.Usage = func() {
fmt.Println(usage) fmt.Print(usage)
} }
flag.Parse() flag.Parse()
@ -358,11 +370,9 @@ func main() {
log.Fatal("usage: hydroxide export-secret-keys <username>") log.Fatal("usage: hydroxide export-secret-keys <username>")
} }
var bridgePassword string bridgePassword, err := askBridgePass()
if pass, err := askPass("Bridge password"); err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} else {
bridgePassword = string(pass)
} }
_, privateKeys, err := auth.NewManager(newClient).Auth(username, bridgePassword) _, privateKeys, err := auth.NewManager(newClient).Auth(username, bridgePassword)
@ -398,11 +408,9 @@ func main() {
} }
defer f.Close() defer f.Close()
var bridgePassword string bridgePassword, err := askBridgePass()
if pass, err := askPass("Bridge password"); err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} else {
bridgePassword = string(pass)
} }
c, _, err := auth.NewManager(newClient).Auth(username, bridgePassword) c, _, err := auth.NewManager(newClient).Auth(username, bridgePassword)
@ -442,11 +450,9 @@ func main() {
log.Fatal("usage: hydroxide export-messages [-conversation-id <id>] [-message-id <id>] <username>") log.Fatal("usage: hydroxide export-messages [-conversation-id <id>] [-message-id <id>] <username>")
} }
var bridgePassword string bridgePassword, err := askBridgePass()
if pass, err := askPass("Bridge password"); err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} else {
bridgePassword = string(pass)
} }
c, privateKeys, err := auth.NewManager(newClient).Auth(username, bridgePassword) c, privateKeys, err := auth.NewManager(newClient).Auth(username, bridgePassword)
@ -521,11 +527,9 @@ func main() {
sendmailCmd.Parse(flag.Args()[3:]) sendmailCmd.Parse(flag.Args()[3:])
rcpt := sendmailCmd.Args() rcpt := sendmailCmd.Args()
var bridgePassword string bridgePassword, err := askBridgePass()
if pass, err := askPass("Bridge password"); err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} else {
bridgePassword = string(pass)
} }
c, privateKeys, err := auth.NewManager(newClient).Auth(username, bridgePassword) c, privateKeys, err := auth.NewManager(newClient).Auth(username, bridgePassword)