github.com/suntong/easygen@v5.3.0+incompatible/cmd/easygen/flags.go (about)

     1  // !!! !!!
     2  // WARNING: Code automatically generated. Editing discouraged.
     3  // !!! !!!
     4  
     5  package main
     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 = "easygen" // 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
    29  	flag.StringVar(&easygen.Opts.TemplateStr, "ts", "",
    30  		"template string (in text)")
    31  	flag.StringVar(&easygen.Opts.ExtYaml, "ey", ".yaml",
    32  		"`extension` of yaml file")
    33  	flag.StringVar(&easygen.Opts.ExtJson, "ej", ".json",
    34  		"`extension` of json file")
    35  	flag.StringVar(&easygen.Opts.ExtTmpl, "et", ".tmpl",
    36  		"`extension` of template file")
    37  	flag.IntVar(&easygen.Opts.Debug, "debug", 0,
    38  		"debugging `level`")
    39  
    40  	// Now override those default values from environment variables
    41  	if len(easygen.Opts.TemplateStr) == 0 ||
    42  		len(os.Getenv("EASYGEN_TS")) != 0 {
    43  		easygen.Opts.TemplateStr = os.Getenv("EASYGEN_TS")
    44  	}
    45  	if len(easygen.Opts.ExtYaml) == 0 ||
    46  		len(os.Getenv("EASYGEN_EY")) != 0 {
    47  		easygen.Opts.ExtYaml = os.Getenv("EASYGEN_EY")
    48  	}
    49  	if len(easygen.Opts.ExtJson) == 0 ||
    50  		len(os.Getenv("EASYGEN_EJ")) != 0 {
    51  		easygen.Opts.ExtJson = os.Getenv("EASYGEN_EJ")
    52  	}
    53  	if len(easygen.Opts.ExtTmpl) == 0 ||
    54  		len(os.Getenv("EASYGEN_ET")) != 0 {
    55  		easygen.Opts.ExtTmpl = os.Getenv("EASYGEN_ET")
    56  	}
    57  
    58  }
    59  
    60  // Usage function shows help on commandline usage
    61  func Usage() {
    62  	fmt.Fprintf(os.Stderr,
    63  		"%s version %s\n\nUsage:\n %s [flags] template_name [data_filename [data_filename...]]\n\nFlags:\n\n",
    64  		progname, version, progname)
    65  	flag.PrintDefaults()
    66  	fmt.Fprintf(os.Stderr,
    67  		`
    68  template_name: The name for the template file.
    69   - Can have the extension (specified by -et) or without it.
    70   - Can include the path as well.
    71   - Can be a comma-separated list giving many template files, in which case
    72     at least one data_filename must be given.
    73  
    74  data_filename(s): The name for the .yaml or .json data.
    75   - If omitted derive from the template_name.
    76   - Can have the extension or without it. If withot extension,
    77     will try the .yaml file first then .json
    78   - Can include the path as well.
    79   - Can have more than one data files given on cli, separated by spaces,
    80     in which case multiple outputs will be produced based on the inputs.
    81   - Can be a comma-separated list giving many data files, in which case
    82     data will be merged together as if provided from a single file.
    83   - If there is a single data_filename, and it is "-",
    84     then read the data (.yaml or .json format) from stdin.
    85  
    86  Flag defaults can be overridden by corresponding environment variable, e.g.:
    87    EASYGEN_EY=.yml EASYGEN_ET=.tpl easygen ...
    88  `)
    89  	os.Exit(0)
    90  }