package main import ( "fmt" "git.sophuwu.com/gophuwu/flags" "os" "git.sophuwu.com/mailboxxer/db" "git.sophuwu.com/mailboxxer/web" ) func init() { newFlag := flags.NewNewFlagWithHandler(func(err error) { fmt.Fprintln(os.Stderr, err) os.Exit(1) }) newFlag("mailbox", "m", "the directory for mailboxxer emails and databases", "$HOME/.mailbox") flags.AddHelp("mailbox", `inside the mailbox dir, there should be a postfix directory inbox named "inbox"`) newFlag("web", "", "run as web server instead of terminal user interface", false) newFlag("listen", "l", "set the ip and port when running in web mode", web.DefaultAddr) db.ChkErr(flags.ParseArgs()) } func main() { isWeb, err := flags.GetBoolFlag("web") if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(69) } var addr string if isWeb { addr, err = flags.GetStringFlag("listen") if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(69) } db.Open() web.ServeHttp(addr) db.Close() os.Exit(0) } db.Open() CLI() db.Close() os.Exit(0) }