♻️ Better names and add printing methods
This commit is contained in:
parent
f41ac8575f
commit
d5e7f601b6
4 changed files with 41 additions and 17 deletions
|
|
@ -14,6 +14,7 @@ const dataPath = "shows.yml"
|
|||
func main() {
|
||||
loop := pflag.BoolP("loop", "l", false, "Loop")
|
||||
help := pflag.BoolP("help", "h", false, "Get Help")
|
||||
dryRun := pflag.BoolP("dry-run", "d", false, "Do a dry run")
|
||||
pflag.Parse()
|
||||
|
||||
if *help {
|
||||
|
|
@ -21,6 +22,12 @@ func main() {
|
|||
os.Exit(2)
|
||||
}
|
||||
|
||||
*dryRun = true // @todo temp
|
||||
var walker convids.ShowWalker
|
||||
if *dryRun {
|
||||
walker = convids.DryRun(os.Stdout)
|
||||
}
|
||||
|
||||
if *loop {
|
||||
fmt.Println("looping")
|
||||
}
|
||||
|
|
@ -28,9 +35,6 @@ func main() {
|
|||
data, err := convids.NewData(dataPath)
|
||||
e.HandleErr(err)
|
||||
|
||||
convids.WalkFiles(data, false, false, func(s *convids.Show, path string) error {
|
||||
fmt.Printf("%s for %+v\n", path, s)
|
||||
return nil
|
||||
})
|
||||
convids.WalkFiles(data, false, convids.PrintGroupName(os.Stdout), walker)
|
||||
fmt.Println("Done!")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package convids
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
fp "path/filepath"
|
||||
"regexp"
|
||||
|
|
@ -28,17 +30,23 @@ func ensureExtRe(c *Config) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func WalkFiles(d *Data, stopOnError, silent bool, cb func(s *Show, path string) error) (err error) {
|
||||
type ShowWalker func(show *Show, path string) error
|
||||
type GroupPrinter func(name string, group Shows)
|
||||
|
||||
func WalkFiles(d *Data, stopOnError bool, gp GroupPrinter, cb ShowWalker) (err error) {
|
||||
err = ensureExtRe(d.Config)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if cb == nil {
|
||||
cb = DryRun(os.Stdout)
|
||||
}
|
||||
var files []os.DirEntry
|
||||
files, err = os.ReadDir(d.Config.Source)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
for s := range d.AllShows(silent) {
|
||||
for s := range d.AllShows(gp) {
|
||||
var found bool
|
||||
for _, file := range files {
|
||||
if file.IsDir() {
|
||||
|
|
@ -62,3 +70,16 @@ func WalkFiles(d *Data, stopOnError, silent bool, cb func(s *Show, path string)
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DryRun(out io.Writer) ShowWalker {
|
||||
return func(s *Show, path string) error {
|
||||
fmt.Fprintf(out, "Saving %s to %s\n", path, s.Folder)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func PrintGroupName(out io.Writer) GroupPrinter {
|
||||
return func(name string, group Shows) {
|
||||
fmt.Fprintf(out, "Checking %s shows\n\n", name)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package convids
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"iter"
|
||||
"regexp"
|
||||
"slices"
|
||||
|
|
@ -57,24 +56,24 @@ func (ss *Shows) All() iter.Seq[*Show] {
|
|||
return slices.Values(*ss)
|
||||
}
|
||||
|
||||
func (d *Data) AllShows(silent bool) iter.Seq[*Show] {
|
||||
func (d *Data) AllShows(outputGroup GroupPrinter) iter.Seq[*Show] {
|
||||
return func(yield func(*Show) bool) {
|
||||
if d == nil || d.Config == nil {
|
||||
return
|
||||
}
|
||||
for _, show := range d.Config.Shows {
|
||||
sh := (*d.Shows)[show]
|
||||
if sh == nil || len(*sh) < 1 {
|
||||
for _, groupName := range d.Config.Groups {
|
||||
group := (*d.Shows)[groupName]
|
||||
if group == nil || len(*group) < 1 {
|
||||
continue
|
||||
}
|
||||
if !silent {
|
||||
fmt.Printf("Checking %s shows\n\n", show)
|
||||
if outputGroup != nil {
|
||||
outputGroup(groupName, *group)
|
||||
}
|
||||
for s := range sh.All() {
|
||||
if s == nil {
|
||||
for sh := range group.All() {
|
||||
if sh == nil {
|
||||
continue
|
||||
}
|
||||
if !yield(s) {
|
||||
if !yield(sh) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ type Data struct {
|
|||
type Config struct {
|
||||
Source string
|
||||
Extensions []string
|
||||
Shows []string
|
||||
Groups []string
|
||||
|
||||
extRe *regexp.Regexp
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue