gopkg.in/easygen.v4@v4.1.0/cmd/easygen/flags.tmpl (about) 1 // !!! !!! 2 // WARNING: Code automatically generated. Editing discouraged. 3 // !!! !!! 4 5 package {{.PackageName}} 6 7 import ( 8 "flag" 9 "fmt" 10 "os" 11 12 "github.com/go-easygen/easygen" 13 ) 14 15 //////////////////////////////////////////////////////////////////////////// 16 // Constant and data type/structure definitions 17 18 //const progname = "{{.ProgramName}}" // os.Args[0] 19 20 //////////////////////////////////////////////////////////////////////////// 21 // Global variables definitions 22 23 //////////////////////////////////////////////////////////////////////////// 24 // Commandline definitions 25 26 func init() { 27 28 // set default values for command line parameters{{range .Options}}{{if eq .Name "SEPARATOR" }} 29 30 {{else}} 31 flag.{{clk2uc .Type}}Var(&easygen.{{$.StructVar}}.{{.Name}}, "{{.Flag}}", {{.Value}}, 32 "{{.Usage}}"){{end}}{{end}} 33 34 // Now override those default values from environment variables{{range .Options}}{{if eq .Name "SEPARATOR" }} 35 36 {{else}}{{if eq .Type "string" }}{{$envVar := printf "%s_%s" (clk2ss $.ProgramName) (clk2ss .Flag)}} 37 if len(easygen.{{$.StructVar}}.{{.Name}}) == 0 || 38 len(os.Getenv("{{$envVar}}")) != 0 { 39 easygen.{{$.StructVar}}.{{.Name}} = os.Getenv("{{$envVar}}") 40 }{{end}}{{end}}{{end}} 41 42 } 43 44 {{if eqf .UsageSummary "True" }} 45 const USAGE_SUMMARY = "{{range .Options}}{{if eq .Name "SEPARATOR" }}\n{{else}}{{$envVar := printf "%s_%s" (clk2ss $.ProgramName) (clk2ss .Flag)}} -{{.Flag}}\t{{.Usage}} ({{$envVar}})\n{{end}}{{end}}\nDetails:\n\n" 46 {{end}} 47 48 // Usage function shows help on commandline usage 49 func Usage() { 50 fmt.Fprintf(os.Stderr, 51 "%s version %s\n{{.UsageLead}}", 52 progname, version, progname){{if eq .UsageSummary "TRUE" }} 53 fmt.Fprintf(os.Stderr, USAGE_SUMMARY){{end}} 54 flag.PrintDefaults() 55 fmt.Fprintf(os.Stderr, 56 "{{.UsageEnd}}") 57 os.Exit(0) 58 } 59