41 lines
834 B
Go
41 lines
834 B
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"sync"
|
|
|
|
"gioui.org/app"
|
|
"git.mstar.dev/mstar/goutils/other"
|
|
"git.mstar.dev/mstar/timer/shared"
|
|
"git.mstar.dev/mstar/timer/timer"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
func main() {
|
|
other.SetupFlags()
|
|
other.ConfigureLoggingFromCliArgs()
|
|
// Create window struct outside. Doesn't cause any renders yet
|
|
windows := []*app.Window{
|
|
new(app.Window),
|
|
}
|
|
var wg sync.WaitGroup
|
|
for _, window := range windows {
|
|
wg.Add(1)
|
|
go windowLauncher(window, &wg)
|
|
}
|
|
go func() {
|
|
wg.Wait()
|
|
log.Info().Msg("All windows closed, exiting")
|
|
os.Exit(0)
|
|
}()
|
|
app.Main()
|
|
}
|
|
|
|
func windowLauncher(window *app.Window, wg *sync.WaitGroup) {
|
|
defer wg.Done()
|
|
log.Info().Msg("Starting window")
|
|
err := shared.Run(window, &timer.StateEnterTime{})
|
|
if err != nil {
|
|
log.Fatal().Err(err).Msg("Failed to run main window")
|
|
}
|
|
}
|