🎉 Start project
This commit is contained in:
commit
c711ed6567
7 changed files with 119 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
build/
|
||||
42
cmd/convids/main.go
Normal file
42
cmd/convids/main.go
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"codeberg.org/danjones000/utils/convids"
|
||||
"codeberg.org/danjones000/utils/internal/cli"
|
||||
"github.com/spf13/pflag"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
const dataPath = "shows.yml"
|
||||
|
||||
func main() {
|
||||
loop := pflag.BoolP("loop", "l", false, "Loop")
|
||||
help := pflag.BoolP("help", "h", false, "Get Help")
|
||||
pflag.Parse()
|
||||
|
||||
if *help {
|
||||
pflag.Usage()
|
||||
os.Exit(2)
|
||||
}
|
||||
|
||||
if *loop {
|
||||
fmt.Println("looping")
|
||||
}
|
||||
|
||||
f, err := os.Open(dataPath)
|
||||
cli.HandleErr(err)
|
||||
|
||||
ydec := yaml.NewDecoder(f)
|
||||
var data convids.Data
|
||||
err = ydec.Decode(&data)
|
||||
cli.HandleErr(err)
|
||||
|
||||
fmt.Printf("Data: %+v\n", data)
|
||||
|
||||
for s := range data.AllShows(false) {
|
||||
fmt.Printf("Show: %+v\n", s)
|
||||
}
|
||||
}
|
||||
26
convids/methods.go
Normal file
26
convids/methods.go
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
package convids
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"iter"
|
||||
"slices"
|
||||
)
|
||||
|
||||
func (s Shows) All() iter.Seq[Show] {
|
||||
return slices.Values(s)
|
||||
}
|
||||
|
||||
func (d Data) AllShows(silent bool) iter.Seq[Show] {
|
||||
return func(yield func(Show) bool) {
|
||||
for _, show := range d.Config.Shows {
|
||||
if !silent {
|
||||
fmt.Println("\nChecking", show, "shows\n")
|
||||
}
|
||||
for s := range d.Shows[show].All() {
|
||||
if !yield(s) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
convids/models.go
Normal file
23
convids/models.go
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package convids
|
||||
|
||||
type Data struct {
|
||||
Config Config
|
||||
Shows ShowMap
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Source string
|
||||
Extensions []string
|
||||
Shows []string
|
||||
}
|
||||
|
||||
type ShowMap map[string]Shows
|
||||
|
||||
type Shows []Show
|
||||
|
||||
type Show struct {
|
||||
Folder string
|
||||
Pattern string
|
||||
Name string
|
||||
Anime bool
|
||||
}
|
||||
8
go.mod
Normal file
8
go.mod
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
module codeberg.org/danjones000/utils
|
||||
|
||||
go 1.23.1
|
||||
|
||||
require (
|
||||
github.com/spf13/pflag v1.0.5
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
6
go.sum
Normal file
6
go.sum
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
13
internal/cli/cli.go
Normal file
13
internal/cli/cli.go
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
package cli
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
func HandleErr(err error) {
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue