62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
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!")
|
|
}
|