random-apps/main.go

42 lines
834 B
Go
Raw Normal View History

2025-02-03 07:22:01 +00:00
package main
import (
"os"
2025-02-03 15:41:15 +00:00
"sync"
2025-02-03 07:22:01 +00:00
"gioui.org/app"
2025-02-03 15:41:15 +00:00
"git.mstar.dev/mstar/goutils/other"
"git.mstar.dev/mstar/timer/shared"
"git.mstar.dev/mstar/timer/timer"
2025-02-03 07:22:01 +00:00
"github.com/rs/zerolog/log"
)
func main() {
2025-02-03 15:41:15 +00:00
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)
2025-02-03 07:22:01 +00:00
}
go func() {
2025-02-03 15:41:15 +00:00
wg.Wait()
log.Info().Msg("All windows closed, exiting")
2025-02-03 07:22:01 +00:00
os.Exit(0)
}()
app.Main()
}
2025-02-03 15:41:15 +00:00
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")
}
}