🎉 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