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 }