From d02ecbddf17868bff9701836e86b918f55ee11dc Mon Sep 17 00:00:00 2001 From: James Rasell Date: Fri, 29 Oct 2021 09:00:50 +0200 Subject: [PATCH] cli: add json and template flag opts to acl boostrap command. --- command/acl_bootstrap.go | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/command/acl_bootstrap.go b/command/acl_bootstrap.go index aa3069865..85dbc69bf 100644 --- a/command/acl_bootstrap.go +++ b/command/acl_bootstrap.go @@ -22,13 +22,24 @@ General Options: ` + generalOptionsUsage(usageOptsDefault|usageOptsNoNamespace) + ` +Bootstrap Options: + + -json + Output the bootstrap response in JSON format. + + -t + Format and display the bootstrap response using a Go template. + ` return strings.TrimSpace(helpText) } func (c *ACLBootstrapCommand) AutocompleteFlags() complete.Flags { return mergeAutocompleteFlags(c.Meta.AutocompleteFlags(FlagSetClient), - complete.Flags{}) + complete.Flags{ + "-json": complete.PredictNothing, + "-t": complete.PredictAnything, + }) } func (c *ACLBootstrapCommand) AutocompleteArgs() complete.Predictor { @@ -42,8 +53,16 @@ func (c *ACLBootstrapCommand) Synopsis() string { func (c *ACLBootstrapCommand) Name() string { return "acl bootstrap" } func (c *ACLBootstrapCommand) Run(args []string) int { + + var ( + json bool + tmpl string + ) + flags := c.Meta.FlagSet(c.Name(), FlagSetClient) flags.Usage = func() { c.Ui.Output(c.Help()) } + flags.BoolVar(&json, "json", false, "") + flags.StringVar(&tmpl, "t", "", "") if err := flags.Parse(args); err != nil { return 1 } @@ -70,6 +89,17 @@ func (c *ACLBootstrapCommand) Run(args []string) int { return 1 } + if json || len(tmpl) > 0 { + out, err := Format(json, tmpl, token) + if err != nil { + c.Ui.Error(err.Error()) + return 1 + } + + c.Ui.Output(out) + return 0 + } + // Format the output c.Ui.Output(formatKVACLToken(token)) return 0