github.com/suntong/easygen@v5.3.0+incompatible/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