Make hostname and ports configurable
Signed-off-by: xcffl <xcffl@outlook.com>
This commit is contained in:
parent
f8ed15f423
commit
a46986a871
|
@ -104,12 +104,27 @@ func listenAndServeCardDAV(addr string, authManager *auth.Manager, eventsManager
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
// Register flags
|
||||||
|
smtpHost := flag.String("smtp-host", "127.0.0.1", "Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1")
|
||||||
|
smtpPort := flag.String("smtp-port", "1025", "SMTP port on which hydroxide listens, defaults to 1025")
|
||||||
|
|
||||||
|
imapHost := flag.String("imap-host", "127.0.0.1", "Allowed IMAP email hostname on which hydroxide listens, defaults to 127.0.0.1")
|
||||||
|
imapPort := flag.String("imap-port", "1143", "IMAP port on which hydroxide listens, defaults to 1143")
|
||||||
|
|
||||||
|
carddavHost := flag.String("carddav-host", "127.0.0.1", "Allowed CardDAV email hostname on which hydroxide listens, defaults to 127.0.0.1")
|
||||||
|
carddavPort := flag.String("carddav-port", "8080", "CardDAV port on which hydroxide listens, defaults to 8080")
|
||||||
|
|
||||||
|
// Register arguments
|
||||||
|
authCmd := flag.NewFlagSet("auth", flag.ExitOnError)
|
||||||
|
exportSecretKeysCmd := flag.NewFlagSet("export-secret-keys", flag.ExitOnError)
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
cmd := flag.Arg(0)
|
cmd := flag.Arg(0)
|
||||||
switch cmd {
|
switch cmd {
|
||||||
case "auth":
|
case "auth":
|
||||||
username := flag.Arg(1)
|
authCmd.Parse(os.Args[2:])
|
||||||
|
username := authCmd.Arg(1)
|
||||||
if username == "" {
|
if username == "" {
|
||||||
log.Fatal("usage: hydroxide auth <username>")
|
log.Fatal("usage: hydroxide auth <username>")
|
||||||
}
|
}
|
||||||
|
@ -206,7 +221,8 @@ func main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "export-secret-keys":
|
case "export-secret-keys":
|
||||||
username := flag.Arg(1)
|
exportSecretKeysCmd.Parse(os.Args[2:])
|
||||||
|
username := exportSecretKeysCmd.Arg(1)
|
||||||
if username == "" {
|
if username == "" {
|
||||||
log.Fatal("usage: hydroxide export-secret-keys <username>")
|
log.Fatal("usage: hydroxide export-secret-keys <username>")
|
||||||
}
|
}
|
||||||
|
@ -239,60 +255,62 @@ func main() {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
case "smtp":
|
case "smtp":
|
||||||
port := os.Getenv("PORT")
|
addr := *smtpHost + ":" + *smtpPort
|
||||||
if port == "" {
|
|
||||||
port = "1025"
|
|
||||||
}
|
|
||||||
addr := "127.0.0.1:" + port
|
|
||||||
|
|
||||||
authManager := auth.NewManager(newClient)
|
authManager := auth.NewManager(newClient)
|
||||||
log.Fatal(listenAndServeSMTP(addr, authManager))
|
log.Fatal(listenAndServeSMTP(addr, authManager))
|
||||||
case "imap":
|
case "imap":
|
||||||
port := os.Getenv("PORT")
|
addr := *imapHost + ":" + *imapPort
|
||||||
if port == "" {
|
|
||||||
port = "1143"
|
|
||||||
}
|
|
||||||
addr := "127.0.0.1:" + port
|
|
||||||
|
|
||||||
authManager := auth.NewManager(newClient)
|
authManager := auth.NewManager(newClient)
|
||||||
eventsManager := events.NewManager()
|
eventsManager := events.NewManager()
|
||||||
log.Fatal(listenAndServeIMAP(addr, authManager, eventsManager))
|
log.Fatal(listenAndServeIMAP(addr, authManager, eventsManager))
|
||||||
case "carddav":
|
case "carddav":
|
||||||
port := os.Getenv("PORT")
|
addr := *carddavHost + ":" + *carddavPort
|
||||||
if port == "" {
|
|
||||||
port = "8080"
|
|
||||||
}
|
|
||||||
addr := "127.0.0.1:" + port
|
|
||||||
|
|
||||||
authManager := auth.NewManager(newClient)
|
authManager := auth.NewManager(newClient)
|
||||||
eventsManager := events.NewManager()
|
eventsManager := events.NewManager()
|
||||||
log.Fatal(listenAndServeCardDAV(addr, authManager, eventsManager))
|
log.Fatal(listenAndServeCardDAV(addr, authManager, eventsManager))
|
||||||
case "serve":
|
case "serve":
|
||||||
|
smtpAddr := *smtpHost + ":" + *smtpPort
|
||||||
|
imapAddr := *imapHost + ":" + *imapPort
|
||||||
|
carddavAddr := *carddavHost + ":" + *carddavPort
|
||||||
|
|
||||||
authManager := auth.NewManager(newClient)
|
authManager := auth.NewManager(newClient)
|
||||||
eventsManager := events.NewManager()
|
eventsManager := events.NewManager()
|
||||||
|
|
||||||
done := make(chan error, 3)
|
done := make(chan error, 3)
|
||||||
go func() {
|
go func() {
|
||||||
done <- listenAndServeSMTP("127.0.0.1:1025", authManager)
|
done <- listenAndServeSMTP(smtpAddr, authManager)
|
||||||
}()
|
}()
|
||||||
go func() {
|
go func() {
|
||||||
done <- listenAndServeIMAP("127.0.0.1:1143", authManager, eventsManager)
|
done <- listenAndServeIMAP(imapAddr, authManager, eventsManager)
|
||||||
}()
|
}()
|
||||||
go func() {
|
go func() {
|
||||||
done <- listenAndServeCardDAV("127.0.0.1:8080", authManager, eventsManager)
|
done <- listenAndServeCardDAV(carddavAddr, authManager, eventsManager)
|
||||||
}()
|
}()
|
||||||
log.Fatal(<-done)
|
log.Fatal(<-done)
|
||||||
default:
|
default:
|
||||||
log.Println(
|
log.Println(`usage: hydroxide <command> <flags>
|
||||||
`usage: hydroxide <command>
|
commands:
|
||||||
commands:
|
auth <username> Login to ProtonMail via hydroxide
|
||||||
auth <username> Login to ProtonMail via hydroxide
|
export-secret-keys Export keys
|
||||||
export-secret-keys Export keys
|
smtp Run hydroxide as an SMTP server
|
||||||
smtp Run hydroxide as an SMTP server
|
imap Run hydroxide as an IMAP server
|
||||||
imap Run hydroxide as an IMAP server
|
carddav Run hydroxide as a CardDAV server
|
||||||
carddav Run hydroxide as a CardDAV server
|
serve Run all servers
|
||||||
serve Run all servers
|
status View hydroxide status
|
||||||
status View hydroxide status`)
|
|
||||||
|
flags:
|
||||||
|
-smtp-host example.com
|
||||||
|
Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1
|
||||||
|
-imap-host example.com
|
||||||
|
Allowed IMAP email hostname on which hydroxide listens, defaults to 127.0.0.1
|
||||||
|
-carddav-host example.com
|
||||||
|
Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1
|
||||||
|
-smtp-port example.com
|
||||||
|
SMTP port on which hydroxide listens, defaults to 1025
|
||||||
|
-imap-port example.com
|
||||||
|
IMAP port on which hydroxide listens, defaults to 1143
|
||||||
|
-carddav-port example.com
|
||||||
|
CardDAV port on which hydroxide listens, defaults to 8080`)
|
||||||
if cmd != "help" {
|
if cmd != "help" {
|
||||||
log.Fatal("Unrecognized command")
|
log.Fatal("Unrecognized command")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue