User-facing command lines

This commit is contained in:
Neil Alexander
2021-07-09 18:42:52 +01:00
parent eb8b2d5822
commit 4b2f955f69
3 changed files with 35 additions and 15 deletions

View File

@@ -27,16 +27,26 @@ import (
var database = flag.String("database", "yggmail.db", "SQLite database file")
var smtpaddr = flag.String("smtp", "localhost:1025", "SMTP listen address")
var imapaddr = flag.String("imap", "localhost:1026", "IMAP listen address")
var peeraddr = flag.String("peer", "", "Yggdrasil static peer")
var imapaddr = flag.String("imap", "localhost:1143", "IMAP listen address")
var peeraddr = flag.String("peer", "", "Connect to a specific Yggdrasil static peer")
var multicast = flag.Bool("multicast", false, "Connect to Yggdrasil peers on your LAN")
var password = flag.Bool("password", false, "Set a new IMAP/SMTP password")
func main() {
flag.Parse()
rawlog := log.New(os.Stdout, "", 0)
log := log.New(rawlog.Writer(), "[ \033[32mYggmail\033[0m ] ", 0)
flag.Parse()
if flag.NFlag() == 0 {
fmt.Println("Yggmail must be started with either an Yggdrasil peer")
fmt.Println("specified, multicast enabled, or both.")
fmt.Println()
fmt.Println("Available options:")
fmt.Println()
flag.PrintDefaults()
os.Exit(0)
}
storage, err := sqlite3.NewSQLite3StorageStorage(*database)
if err != nil {
panic(err)
@@ -95,6 +105,10 @@ func main() {
log.Println("Password for IMAP and SMTP has been updated!")
os.Exit(0)
case (multicast == nil || !*multicast) && (peeraddr == nil || *peeraddr == ""):
log.Printf("You must specify either -peer, -multicast or both!")
os.Exit(0)
}
cfg := &config.Config{
@@ -104,7 +118,7 @@ func main() {
wg := &sync.WaitGroup{}
wg.Add(2)
transport, err := transport.NewYggdrasilTransport(rawlog, sk, pk, *peeraddr)
transport, err := transport.NewYggdrasilTransport(rawlog, sk, pk, *peeraddr, *multicast)
if err != nil {
panic(err)
}