in cmd/aactl/cli/cmd.go [47:101]
func newApp(version, commit, date string) (*c.App, error) {
if version == "" || commit == "" || date == "" {
return nil, errors.Wrap(types.ErrMissingRequiredFields, "version, commit, and date must be set")
}
compileTime, err := time.Parse("2006-01-02T15:04:05Z", date)
if err != nil {
log.Debug().Msg("compile time not set, using current")
compileTime = time.Now()
}
dateStr := compileTime.UTC().Format("2006-01-02 15:04 UTC")
app := &c.App{
EnableBashCompletion: true,
Suggest: true,
Name: name,
Version: fmt.Sprintf("%s (commit: %s, built: %s)", version, commit, dateStr),
Usage: `vulnerability management tool`,
Compiled: compileTime,
Flags: []c.Flag{
&c.BoolFlag{
Name: "debug",
Usage: "verbose output",
Action: func(c *c.Context, debug bool) error {
if debug {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
return nil
},
},
&c.BoolFlag{
Name: "quiet",
Aliases: []string{"q"},
Usage: "suppress output unless error",
Action: func(c *c.Context, quiet bool) error {
if quiet {
c.App.Metadata["quiet"] = true
}
return nil
},
},
},
Metadata: map[string]interface{}{
metaKeyVersion: version,
metaKeyCommit: commit,
metaKeyDate: date,
},
Commands: []*c.Command{
impCmd,
attestCmd,
},
}
return app, nil
}