mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-02 03:27:54 +00:00
Allow to output secrets in YAML format
This can be done with https://github.com/ghodss/yaml, which reuses existing JSON struct tags for YAML.
This commit is contained in:
@@ -5,7 +5,9 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/ghodss/yaml"
|
||||
"github.com/hashicorp/vault/api"
|
||||
"github.com/mitchellh/cli"
|
||||
"github.com/ryanuber/columnize"
|
||||
@@ -15,6 +17,8 @@ func OutputSecret(ui cli.Ui, format string, secret *api.Secret) int {
|
||||
switch format {
|
||||
case "json":
|
||||
return outputFormatJSON(ui, secret)
|
||||
case "yaml":
|
||||
return outputFormatYAML(ui, secret)
|
||||
case "table":
|
||||
fallthrough
|
||||
default:
|
||||
@@ -36,6 +40,18 @@ func outputFormatJSON(ui cli.Ui, s *api.Secret) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
func outputFormatYAML(ui cli.Ui, s *api.Secret) int {
|
||||
b, err := yaml.Marshal(s)
|
||||
if err != nil {
|
||||
ui.Error(fmt.Sprintf(
|
||||
"Error formatting secret: %s", err))
|
||||
return 1
|
||||
}
|
||||
|
||||
ui.Output(strings.TrimSpace(string(b)))
|
||||
return 0
|
||||
}
|
||||
|
||||
func outputFormatTable(ui cli.Ui, s *api.Secret, whitespace bool) int {
|
||||
config := columnize.DefaultConfig()
|
||||
config.Delim = "♨"
|
||||
|
||||
Reference in New Issue
Block a user