github.com/Liam-Williams/i18n4go@v0.2.7-0.20201028180611-670cbaceaa6b/test_fixtures/extract_strings/f_option/input_files/app.go (about)

     1  package app
     2  
     3  var appHelpTemplate = `{{.Title "NAME:"}}
     4     {{.Name}} - {{.Usage}}
     5  
     6  {{.Title "USAGE:"}}
     7     [environment variables] {{.Name}} [global options] command [arguments...] [command options]
     8  
     9  {{.Title "VERSION:"}}
    10     {{.Version}}
    11  
    12  {{.Title "BUILD TIME:"}}
    13     {{.Compiled}}
    14     {{range .Commands}}
    15  {{.SubTitle .Name}}{{range .CommandSubGroups}}
    16  {{range .}}   {{.Name}} {{.Description}}
    17  {{end}}{{end}}{{end}}
    18  {{.Title "ENVIRONMENT VARIABLES"}}
    19     CF_COLOR=false                     Do not colorize output
    20     CF_HOME=path/to/dir/               Override path to default config directory
    21     CF_STAGING_TIMEOUT=15              Max wait time for buildpack staging, in minutes
    22     CF_STARTUP_TIMEOUT=5               Max wait time for app instance startup, in minutes
    23     CF_TRACE=true                      Print API request diagnostics to stdout
    24     CF_TRACE=path/to/trace.log         Append API request diagnostics to a log file
    25     HTTP_PROXY=proxy.example.com:8080  Enable HTTP proxying for API requests
    26  
    27  {{.Title "GLOBAL OPTIONS"}}
    28     --version, -v                      Print the version
    29     --help, -h                         Show help
    30  `
    31  
    32  func NewApp(cmdRunner command_runner.Runner, metadatas ...command_metadata.CommandMetadata) (app *cli.App) {
    33  	helpCommand := cli.Command{
    34  		Name:        "help",
    35  		ShortName:   "h",
    36  		Description: "Show help",
    37  		Usage:       fmt.Sprintf("%s help [COMMAND]", cf.Name()),
    38  		Action: func(c *cli.Context) {
    39  			args := c.Args()
    40  			if len(args) > 0 {
    41  				cli.ShowCommandHelp(c, args[0])
    42  			} else {
    43  				showAppHelp(appHelpTemplate, c.App)
    44  			}
    45  		},
    46  	}
    47  	cli.HelpPrinter = showAppHelp
    48  	cli.AppHelpTemplate = appHelpTemplate
    49  
    50  	trace.Logger.Printf("\n%s\n%s\n\n", terminal.HeaderColor("VERSION:"), cf.Version)
    51  
    52  	app = cli.NewApp()
    53  	app.Usage = cf.Usage
    54  	app.Version = cf.Version
    55  	app.Action = helpCommand.Action
    56  
    57  	compiledAtTime, err := time.Parse("Jan 2, 2006 3:04PM", cf.BuiltOnDate)
    58  
    59  	if err == nil {
    60  		app.Compiled = compiledAtTime
    61  	} else {
    62  		err = nil
    63  		app.Compiled = time.Now()
    64  	}
    65  
    66  	app.Commands = []cli.Command{helpCommand}
    67  
    68  	for _, metadata := range metadatas {
    69  		app.Commands = append(app.Commands, getCommand(metadata, cmdRunner))
    70  	}
    71  	return
    72  }
    73  
    74  func getCommand(metadata command_metadata.CommandMetadata, runner command_runner.Runner) cli.Command {
    75  	return cli.Command{
    76  		Name:        metadata.Name,
    77  		ShortName:   metadata.ShortName,
    78  		Description: metadata.Description,
    79  		Usage:       strings.Replace(metadata.Usage, "CF_NAME", cf.Name(), -1),
    80  		Action: func(context *cli.Context) {
    81  			runner.RunCmdByName(metadata.Name, context)
    82  		},
    83  		Flags:           metadata.Flags,
    84  		SkipFlagParsing: metadata.SkipFlagParsing,
    85  	}
    86  }