42 lines
		
	
	
	
		
			764 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			764 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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 {
 | |
| 		err := flags.Set("loop", "false")
 | |
| 		if err != nil {
 | |
| 			return nil, err
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return flags, nil
 | |
| }
 |