refactor: remove viper as a direct dependency (#21635)

This commit is contained in:
Matt Kocubinski
2024-09-12 06:00:42 +00:00
committed by GitHub
parent 4fe934e8af
commit 57f35dcdfe
30 changed files with 148 additions and 156 deletions
+6 -2
View File
@@ -23,6 +23,7 @@ import (
banktypes "cosmossdk.io/x/bank/types"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/server"
"github.com/cosmos/cosmos-sdk/server/api"
servergrpc "github.com/cosmos/cosmos-sdk/server/grpc"
@@ -30,7 +31,6 @@ import (
"github.com/cosmos/cosmos-sdk/testutil"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
"github.com/cosmos/cosmos-sdk/x/genutil"
genutiltest "github.com/cosmos/cosmos-sdk/x/genutil/client/testutil"
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
)
@@ -180,7 +180,11 @@ func collectGenFiles(cfg Config, vals []*Validator, cmtConfigs []*cmtcfg.Config,
}
v := vals[i].GetViper()
err = genutiltest.TrackCometConfig(v, nodeDir)
v.Set(flags.FlagHome, nodeDir)
v.SetConfigType("toml")
v.SetConfigName("config")
v.AddConfigPath(filepath.Join(nodeDir, "config"))
err = v.ReadInConfig()
if err != nil {
return err
}
+74
View File
@@ -0,0 +1,74 @@
package genutil
import (
"context"
"fmt"
"path/filepath"
cmtcfg "github.com/cometbft/cometbft/config"
"github.com/spf13/viper"
corectx "cosmossdk.io/core/context"
"cosmossdk.io/log"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/testutil"
"github.com/cosmos/cosmos-sdk/types/module"
genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli"
)
func ExecInitCmd(mm *module.Manager, home string, cdc codec.Codec) error {
logger := log.NewNopLogger()
viper := viper.New()
cmd := genutilcli.InitCmd(mm)
cfg, _ := CreateDefaultCometConfig(home)
err := WriteAndTrackCometConfig(viper, home, cfg)
if err != nil {
return err
}
clientCtx := client.Context{}.WithCodec(cdc).WithHomeDir(home)
_, out := testutil.ApplyMockIO(cmd)
clientCtx = clientCtx.WithOutput(out)
ctx := context.Background()
ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
ctx = context.WithValue(ctx, corectx.ViperContextKey, viper)
ctx = context.WithValue(ctx, corectx.LoggerContextKey, logger)
cmd.SetArgs([]string{"appnode-test"})
return cmd.ExecuteContext(ctx)
}
func CreateDefaultCometConfig(rootDir string) (*cmtcfg.Config, error) {
conf := cmtcfg.DefaultConfig()
conf.SetRoot(rootDir)
cmtcfg.EnsureRoot(rootDir)
if err := conf.ValidateBasic(); err != nil {
return nil, fmt.Errorf("error in config file: %w", err)
}
return conf, nil
}
func WriteAndTrackCometConfig(v *viper.Viper, home string, cfg *cmtcfg.Config) error {
cmtcfg.WriteConfigFile(filepath.Join(home, "config", "config.toml"), cfg)
v.Set(flags.FlagHome, home)
v.SetConfigType("toml")
v.SetConfigName("config")
v.AddConfigPath(filepath.Join(home, "config"))
return v.ReadInConfig()
}
func TrackCometConfig(v *viper.Viper, home string) error {
v.Set(flags.FlagHome, home)
v.SetConfigType("toml")
v.SetConfigName("config")
v.AddConfigPath(filepath.Join(home, "config"))
return v.ReadInConfig()
}