package main import ( "fmt" "os" "codeberg.org/danjones000/utils/chill" c "codeberg.org/danjones000/utils/cli/context" e "codeberg.org/danjones000/utils/cli/err" "codeberg.org/danjones000/utils/cli/spin" "codeberg.org/danjones000/utils/convids" ccli "codeberg.org/danjones000/utils/internal/cli/convids" ) const dataPath = "shows.yml" func main() { flags, err := ccli.ParseFlags(os.Args[0], os.Args[1:]) e.HandleErr(err) if *ccli.Help { flags.Usage() } ctx, done := c.SelfCancelingContextFromBackground() defer done() var walker convids.ShowWalker if *ccli.DryRun { walker = convids.DryRun(os.Stdout) } else { gs := convids.GetShow(ctx) walker = func(s *convids.Show, path string) error { ct := chill.Chill(ctx) msg := fmt.Sprintf("Waiting for CPU to cool, for %s", path) sp := spin.Spin(ct, msg) err := sp.Wait() if err != nil { return err } return gs(s, path) } } data, err := convids.NewData(dataPath) e.HandleErr(err) groupPrinter := convids.PrintGroupName(os.Stdout) if *ccli.Loop { fmt.Println("looping") for err == nil { err = convids.WalkFiles(data, false, groupPrinter, walker) fmt.Println(err) } } else { err = convids.WalkFiles(data, false, groupPrinter, walker) } e.HandleErr(err) fmt.Println("Done!") }