version: Remove Viper (#6628)

* version: remove viper

* Remove home flag gets

* fix: tests
This commit is contained in:
Alexander Bezobchuk 2020-07-07 13:20:09 -04:00 committed by GitHub
parent 57ffe14631
commit bc261d9e83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 55 additions and 53 deletions

View File

@ -183,7 +183,7 @@ func AddCommands(rootCmd *cobra.Command, appCreator AppCreator, appExport AppExp
tendermintCmd, tendermintCmd,
ExportCmd(appExport), ExportCmd(appExport),
flags.LineBreak, flags.LineBreak,
version.Cmd, version.NewVersionCommand(),
) )
} }

View File

@ -6,7 +6,6 @@ import (
"fmt" "fmt"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/tendermint/tendermint/libs/cli"
"github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/flags"
@ -47,8 +46,7 @@ contain valid denominations. Accounts may optionally be supplied with vesting pa
serverCtx := server.GetServerContextFromCmd(cmd) serverCtx := server.GetServerContextFromCmd(cmd)
config := serverCtx.Config config := serverCtx.Config
homeDir, _ := cmd.Flags().GetString(cli.HomeFlag) config.SetRoot(clientCtx.HomeDir)
config.SetRoot(homeDir)
keyringBackend, _ := cmd.Flags().GetString(flags.FlagKeyringBackend) keyringBackend, _ := cmd.Flags().GetString(flags.FlagKeyringBackend)
clientHome, _ := cmd.Flags().GetString(flagClientHome) clientHome, _ := cmd.Flags().GetString(flagClientHome)

View File

@ -2,31 +2,23 @@ package version
import ( import (
"encoding/json" "encoding/json"
"strings"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/viper"
yaml "gopkg.in/yaml.v2"
"github.com/tendermint/tendermint/libs/cli" "github.com/tendermint/tendermint/libs/cli"
yaml "gopkg.in/yaml.v2"
) )
const flagLong = "long" const flagLong = "long"
func init() { func NewVersionCommand() *cobra.Command {
Cmd.Flags().Bool(flagLong, false, "Print long version information") cmd := &cobra.Command{
}
// Cmd prints out the application's version information passed via build flags.
var Cmd = &cobra.Command{
Use: "version", Use: "version",
Short: "Print the app version", Short: "Print the application binary version information",
RunE: runVersionCmd, RunE: func(cmd *cobra.Command, _ []string) error {
}
func runVersionCmd(cmd *cobra.Command, args []string) error {
verInfo := NewInfo() verInfo := NewInfo()
if !viper.GetBool(flagLong) { if long, _ := cmd.Flags().GetBool(flagLong); !long {
cmd.Println(verInfo.Version) cmd.Println(verInfo.Version)
return nil return nil
} }
@ -34,9 +26,11 @@ func runVersionCmd(cmd *cobra.Command, args []string) error {
var bz []byte var bz []byte
var err error var err error
switch viper.GetString(cli.OutputFlag) { output, _ := cmd.Flags().GetString(cli.OutputFlag)
switch strings.ToLower(output) {
case "json": case "json":
bz, err = json.Marshal(verInfo) bz, err = json.Marshal(verInfo)
default: default:
bz, err = yaml.Marshal(&verInfo) bz, err = yaml.Marshal(&verInfo)
} }
@ -47,4 +41,11 @@ func runVersionCmd(cmd *cobra.Command, args []string) error {
cmd.Println(string(bz)) cmd.Println(string(bz))
return nil return nil
},
}
cmd.Flags().Bool(flagLong, false, "Print long version information")
cmd.Flags().StringP(cli.OutputFlag, "o", "text", "Output format (text|json)")
return cmd
} }

View File

@ -6,7 +6,6 @@ import (
"runtime" "runtime"
"testing" "testing"
"github.com/spf13/viper"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/tendermint/tendermint/libs/cli" "github.com/tendermint/tendermint/libs/cli"
@ -40,20 +39,26 @@ go version go1.14 linux/amd64`
} }
func Test_runVersionCmd(t *testing.T) { func Test_runVersionCmd(t *testing.T) {
require.NotNil(t, Cmd) cmd := NewVersionCommand()
_, mockOut, _ := tests.ApplyMockIO(Cmd) _, mockOut, _ := tests.ApplyMockIO(cmd)
viper.Set(cli.OutputFlag, "") cmd.SetArgs([]string{
viper.Set(flagLong, false) fmt.Sprintf("--%s=''", cli.OutputFlag),
require.NoError(t, runVersionCmd(Cmd, nil)) fmt.Sprintf("--%s=false", flagLong),
})
require.NoError(t, cmd.Execute())
assert.Equal(t, "\n", mockOut.String()) assert.Equal(t, "\n", mockOut.String())
mockOut.Reset() mockOut.Reset()
viper.Set(cli.OutputFlag, "json") cmd.SetArgs([]string{
viper.Set(flagLong, true) fmt.Sprintf("--%s=json", cli.OutputFlag),
fmt.Sprintf("--%s=true", flagLong),
})
info := NewInfo() info := NewInfo()
stringInfo, err := json.Marshal(info) stringInfo, err := json.Marshal(info)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, runVersionCmd(Cmd, nil)) require.NoError(t, cmd.Execute())
assert.Equal(t, string(stringInfo)+"\n", mockOut.String()) assert.Equal(t, string(stringInfo)+"\n", mockOut.String())
} }

View File

@ -29,8 +29,7 @@ func CollectGenTxsCmd(genBalIterator types.GenesisBalancesIterator, defaultNodeH
clientCtx := client.GetClientContextFromCmd(cmd) clientCtx := client.GetClientContextFromCmd(cmd)
cdc := clientCtx.JSONMarshaler cdc := clientCtx.JSONMarshaler
home, _ := cmd.Flags().GetString(cli.HomeFlag) config.SetRoot(clientCtx.HomeDir)
config.SetRoot(home)
nodeID, valPubKey, err := genutil.InitializeNodeValidatorFiles(config) nodeID, valPubKey, err := genutil.InitializeNodeValidatorFiles(config)
if err != nil { if err != nil {

View File

@ -72,8 +72,7 @@ func InitCmd(mbm module.BasicManager, defaultNodeHome string) *cobra.Command {
serverCtx := server.GetServerContextFromCmd(cmd) serverCtx := server.GetServerContextFromCmd(cmd)
config := serverCtx.Config config := serverCtx.Config
home, _ := cmd.Flags().GetString(cli.HomeFlag) config.SetRoot(clientCtx.HomeDir)
config.SetRoot(home)
chainID, _ := cmd.Flags().GetString(flags.FlagChainID) chainID, _ := cmd.Flags().GetString(flags.FlagChainID)
if chainID == "" { if chainID == "" {

View File

@ -52,7 +52,7 @@ func TestInitCmd(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
serverCtx := server.NewContext(viper.New(), cfg, logger) serverCtx := server.NewContext(viper.New(), cfg, logger)
clientCtx := client.Context{}.WithJSONMarshaler(makeCodec()) clientCtx := client.Context{}.WithJSONMarshaler(makeCodec()).WithHomeDir(home)
ctx := context.Background() ctx := context.Background()
ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
@ -81,7 +81,7 @@ func TestEmptyState(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
serverCtx := server.NewContext(viper.New(), cfg, logger) serverCtx := server.NewContext(viper.New(), cfg, logger)
clientCtx := client.Context{}.WithJSONMarshaler(makeCodec()) clientCtx := client.Context{}.WithJSONMarshaler(makeCodec()).WithHomeDir(home)
ctx := context.Background() ctx := context.Background()
ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
@ -128,14 +128,14 @@ func TestStartStandAlone(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
serverCtx := server.NewContext(viper.New(), cfg, logger) serverCtx := server.NewContext(viper.New(), cfg, logger)
clientCtx := client.Context{}.WithJSONMarshaler(makeCodec()) clientCtx := client.Context{}.WithJSONMarshaler(makeCodec()).WithHomeDir(home)
ctx := context.Background() ctx := context.Background()
ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx) ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx)
cmd := InitCmd(testMbm, home) cmd := InitCmd(testMbm, home)
cmd.SetArgs([]string{"appnode-test", fmt.Sprintf("--%s=%s", cli.HomeFlag, home)}) cmd.SetArgs([]string{"appnode-test"})
require.NoError(t, cmd.ExecuteContext(ctx)) require.NoError(t, cmd.ExecuteContext(ctx))