gopkg.in/easygen.v4@v4.1.0/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 "\ndata_filename(s): The name for the .yaml or .json data.\n - If omitted derive from the template_name.\n - Can have the extension or without it. If withot extension,\n will try .yaml first then .json\n - Can include the path as well.\n\ntemplate_name: The name for the template file.\n - Can have the extension or without it.\n - Can include the path as well.\n - Can be a comma-separated list giving many template files, in which case\n at least one data_filename must be given.\n\nFlag defaults can be overridden by corresponding environment variable, e.g.:\n EASYGEN_EY=.yml EASYGEN_ET=.tpl easygen ...\n") 68 os.Exit(0) 69 }