fix(client/v2): respect output format from client ctx (#20033)
This commit is contained in:
parent
84c64b204d
commit
1adc1f0ca9
@ -56,6 +56,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||
* [#19976](https://github.com/cosmos/cosmos-sdk/pull/19976) Add encoder for `cosmos.base.v1beta1.DecCoin`.
|
||||
* [#19377](https://github.com/cosmos/cosmos-sdk/pull/19377) Partly fix comment parsing in autocli.
|
||||
* [#19060](https://github.com/cosmos/cosmos-sdk/pull/19060) Simplify key flag parsing logic in flag handler.
|
||||
* [#20033](https://github.com/cosmos/cosmos-sdk/pull/20033) Respect output format from client ctx.
|
||||
|
||||
### API Breaking Changes
|
||||
|
||||
|
||||
@ -11,6 +11,8 @@ import (
|
||||
autocliv1 "cosmossdk.io/api/cosmos/autocli/v1"
|
||||
"cosmossdk.io/client/v2/internal/flags"
|
||||
"cosmossdk.io/client/v2/internal/util"
|
||||
|
||||
"github.com/cosmos/cosmos-sdk/client"
|
||||
)
|
||||
|
||||
type cmdType int
|
||||
@ -224,11 +226,21 @@ func enhanceCustomCmd(builder *Builder, cmd *cobra.Command, cmdType cmdType, mod
|
||||
|
||||
// outOrStdoutFormat formats the output based on the output flag and writes it to the command's output stream.
|
||||
func (b *Builder) outOrStdoutFormat(cmd *cobra.Command, out []byte) error {
|
||||
clientCtx := client.Context{}
|
||||
if v := cmd.Context().Value(client.ClientContextKey); v != nil {
|
||||
clientCtx = *(v.(*client.Context))
|
||||
}
|
||||
flagSet := cmd.Flags()
|
||||
if clientCtx.OutputFormat == "" || flagSet.Changed(flags.FlagOutput) {
|
||||
output, _ := flagSet.GetString(flags.FlagOutput)
|
||||
clientCtx = clientCtx.WithOutputFormat(output)
|
||||
}
|
||||
|
||||
var err error
|
||||
outputType := cmd.Flag(flags.FlagOutput)
|
||||
outputType := clientCtx.OutputFormat
|
||||
// if the output type is text, convert the json to yaml
|
||||
// if output type is json or nil, default to json
|
||||
if outputType != nil && outputType.Value.String() == flags.OutputFormatText {
|
||||
if outputType == flags.OutputFormatText {
|
||||
out, err = yaml.JSONToYAML(out)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Loading…
Reference in New Issue
Block a user