♻️ Move cli code to internal
This commit is contained in:
		
					parent
					
						
							
								1abe398c7a
							
						
					
				
			
			
				commit
				
					
						64b2242567
					
				
			
		
					 2 changed files with 46 additions and 12 deletions
				
			
		|  | @ -9,28 +9,23 @@ import ( | ||||||
| 	e "codeberg.org/danjones000/utils/cli/err" | 	e "codeberg.org/danjones000/utils/cli/err" | ||||||
| 	"codeberg.org/danjones000/utils/cli/spin" | 	"codeberg.org/danjones000/utils/cli/spin" | ||||||
| 	"codeberg.org/danjones000/utils/convids" | 	"codeberg.org/danjones000/utils/convids" | ||||||
| 	"github.com/spf13/pflag" | 	ccli "codeberg.org/danjones000/utils/internal/cli/convids" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| const dataPath = "shows.yml" | const dataPath = "shows.yml" | ||||||
| 
 | 
 | ||||||
| func main() { | func main() { | ||||||
| 	loop := pflag.BoolP("loop", "l", false, "Loop") | 	flags, err := ccli.ParseFlags(os.Args[0], os.Args[1:]) | ||||||
| 	help := pflag.BoolP("help", "h", false, "Get Help") | 	e.HandleErr(err) | ||||||
| 	dryRun := pflag.BoolP("dry-run", "d", false, "Do a dry run") | 	if *ccli.Help { | ||||||
| 	pflag.Parse() | 		flags.Usage() | ||||||
| 
 |  | ||||||
| 	if *help { |  | ||||||
| 		pflag.Usage() |  | ||||||
| 		os.Exit(2) |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ctx, done := c.SelfCancelingContextFromBackground() | 	ctx, done := c.SelfCancelingContextFromBackground() | ||||||
| 	defer done() | 	defer done() | ||||||
| 
 | 
 | ||||||
| 	var walker convids.ShowWalker | 	var walker convids.ShowWalker | ||||||
| 	if *dryRun { | 	if *ccli.DryRun { | ||||||
| 		*loop = false |  | ||||||
| 		walker = convids.DryRun(os.Stdout) | 		walker = convids.DryRun(os.Stdout) | ||||||
| 	} else { | 	} else { | ||||||
| 		gs := convids.GetShow(ctx) | 		gs := convids.GetShow(ctx) | ||||||
|  | @ -52,7 +47,7 @@ func main() { | ||||||
| 
 | 
 | ||||||
| 	groupPrinter := convids.PrintGroupName(os.Stdout) | 	groupPrinter := convids.PrintGroupName(os.Stdout) | ||||||
| 
 | 
 | ||||||
| 	if *loop { | 	if *ccli.Loop { | ||||||
| 		fmt.Println("looping") | 		fmt.Println("looping") | ||||||
| 		for err == nil { | 		for err == nil { | ||||||
| 			err = convids.WalkFiles(data, false, groupPrinter, walker) | 			err = convids.WalkFiles(data, false, groupPrinter, walker) | ||||||
|  |  | ||||||
							
								
								
									
										39
									
								
								internal/cli/convids/flags.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								internal/cli/convids/flags.go
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,39 @@ | ||||||
|  | package convids | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 
 | ||||||
|  | 	"github.com/spf13/pflag" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | var Help *bool | ||||||
|  | var Loop *bool | ||||||
|  | var DryRun *bool | ||||||
|  | 
 | ||||||
|  | func GetFlags(name string) *pflag.FlagSet { | ||||||
|  | 	flags := pflag.NewFlagSet(name, pflag.ExitOnError) | ||||||
|  | 
 | ||||||
|  | 	Help = flags.BoolP("help", "h", false, "Get Help") | ||||||
|  | 	Loop = flags.BoolP("loop", "l", false, "Loop") | ||||||
|  | 	DryRun = flags.BoolP("dry-run", "d", false, "Do a dry run (won't loop)") | ||||||
|  | 
 | ||||||
|  | 	flags.Usage = func() { | ||||||
|  | 		fmt.Printf("Usage of %s:\n", name) | ||||||
|  | 		flags.PrintDefaults() | ||||||
|  | 	} | ||||||
|  | 	return flags | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func ParseFlags(name string, args []string) (*pflag.FlagSet, error) { | ||||||
|  | 	flags := GetFlags(name) | ||||||
|  | 	err := flags.Parse(args) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if *DryRun { | ||||||
|  | 		flags.Set("loop", "false") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return flags, nil | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue