| 
									
										
										
										
											2024-12-03 15:22:35 -06:00
										 |  |  | 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 { | 
					
						
							| 
									
										
										
										
											2025-04-24 14:27:19 -05:00
										 |  |  | 		err := flags.Set("loop", "false") | 
					
						
							|  |  |  | 		if err != nil { | 
					
						
							|  |  |  | 			return nil, err | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2024-12-03 15:22:35 -06:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return flags, nil | 
					
						
							|  |  |  | } |