package main import ( "io" "io/ioutil" "log" "os" "time" "github.com/mattn/go-isatty" "git.sr.ht/~sircmpwn/aerc2/config" "git.sr.ht/~sircmpwn/aerc2/commands" libui "git.sr.ht/~sircmpwn/aerc2/lib/ui" "git.sr.ht/~sircmpwn/aerc2/widgets" ) func main() { var ( logOut io.Writer logger *log.Logger ) if !isatty.IsTerminal(os.Stdout.Fd()) { logOut = os.Stdout } else { logOut = ioutil.Discard } logger = log.New(logOut, "", log.LstdFlags) logger.Println("Starting up aerc") conf, err := config.LoadConfig(nil) if err != nil { panic(err) } var ( aerc *widgets.Aerc ui *libui.UI ) aerc = widgets.NewAerc(conf, logger, func(cmd string) error { err = commands.ExecuteCommand(aerc, cmd) if _, ok := err.(commands.ErrorExit); ok { ui.Exit = true return nil } return err }) ui, err = libui.Initialize(conf, aerc) if err != nil { panic(err) } defer ui.Close() for !ui.Exit { if !ui.Tick() { // ~60 FPS time.Sleep(16 * time.Millisecond) } } }