Skip to content

Commit

Permalink
fix(simapp): home flag is not respected (cosmos#18994)
Browse files Browse the repository at this point in the history
Co-authored-by: Julien Robert <julien@rbrt.fr>
  • Loading branch information
2 people authored and roy-dydx committed Feb 6, 2024
1 parent ac7a054 commit ef2fbba
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 14 deletions.
14 changes: 8 additions & 6 deletions client/cmd.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package client

import (
"context"
"crypto/tls"
"fmt"
"strings"
Expand Down Expand Up @@ -358,13 +359,14 @@ func GetClientContextFromCmd(cmd *cobra.Command) Context {
// SetCmdClientContext sets a command's Context value to the provided argument.
// If the context has not been set, set the given context as the default.
func SetCmdClientContext(cmd *cobra.Command, clientCtx Context) error {
v := cmd.Context().Value(ClientContextKey)
if v == nil {
v = &clientCtx
}
var cmdCtx context.Context

clientCtxPtr := v.(*Context)
*clientCtxPtr = clientCtx
if cmd.Context() == nil {
cmdCtx = context.Background()
} else {
cmdCtx = cmd.Context()
}

cmd.SetContext(context.WithValue(cmdCtx, ClientContextKey, &clientCtx))
return nil
}
4 changes: 2 additions & 2 deletions scripts/init-simapp.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash

SIMD_BIN=${SIMD_BIN:=$(which simd 2>/dev/null)}

Expand All @@ -14,4 +14,4 @@ $SIMD_BIN init test --chain-id demo
$SIMD_BIN genesis add-genesis-account alice 5000000000stake --keyring-backend test
$SIMD_BIN genesis add-genesis-account bob 5000000000stake --keyring-backend test
$SIMD_BIN genesis gentx alice 1000000stake --chain-id demo
$SIMD_BIN genesis collect-gentxs
$SIMD_BIN genesis collect-gentxs
12 changes: 7 additions & 5 deletions server/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -215,13 +215,15 @@ func GetServerContextFromCmd(cmd *cobra.Command) *Context {
// SetCmdServerContext sets a command's Context value to the provided argument.
// If the context has not been set, set the given context as the default.
func SetCmdServerContext(cmd *cobra.Command, serverCtx *Context) error {
v := cmd.Context().Value(ServerContextKey)
if v == nil {
v = serverCtx
var cmdCtx context.Context

if cmd.Context() == nil {
cmdCtx = context.Background()
} else {
cmdCtx = cmd.Context()
}

serverCtxPtr := v.(*Context)
*serverCtxPtr = *serverCtx
cmd.SetContext(context.WithValue(cmdCtx, ServerContextKey, serverCtx))

return nil
}
Expand Down
18 changes: 18 additions & 0 deletions server/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ func TestInterceptConfigsPreRunHandlerCreatesConfigFilesWhenMissing(t *testing.T
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(cmd)

// Test that config.toml is created
configTomlPath := path.Join(tempDir, "config", "config.toml")
s, err := os.Stat(configTomlPath)
Expand Down Expand Up @@ -140,6 +142,8 @@ func TestInterceptConfigsPreRunHandlerReadsConfigToml(t *testing.T) {
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(cmd)

if testDbBackend != serverCtx.Config.DBBackend {
t.Error("backend was not set from config.toml")
}
Expand Down Expand Up @@ -177,6 +181,8 @@ func TestInterceptConfigsPreRunHandlerReadsAppToml(t *testing.T) {
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(cmd)

if testHaltTime != serverCtx.Viper.GetInt("halt-time") {
t.Error("Halt time was not set from app.toml")
}
Expand Down Expand Up @@ -205,6 +211,8 @@ func TestInterceptConfigsPreRunHandlerReadsFlags(t *testing.T) {
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(cmd)

if testAddr != serverCtx.Config.RPC.ListenAddress {
t.Error("RPCListenAddress was not set from command flags")
}
Expand Down Expand Up @@ -240,6 +248,8 @@ func TestInterceptConfigsPreRunHandlerReadsEnvVars(t *testing.T) {
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(cmd)

if testAddr != serverCtx.Config.RPC.ListenAddress {
t.Errorf("RPCListenAddress was not set from env. var. %q", envVarName)
}
Expand Down Expand Up @@ -344,6 +354,8 @@ func TestInterceptConfigsPreRunHandlerPrecedenceFlag(t *testing.T) {
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(testCommon.cmd)

if TestAddrExpected != serverCtx.Config.RPC.ListenAddress {
t.Fatalf("RPCListenAddress was not set from flag %q", testCommon.flagName)
}
Expand All @@ -360,6 +372,8 @@ func TestInterceptConfigsPreRunHandlerPrecedenceEnvVar(t *testing.T) {
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(testCommon.cmd)

if TestAddrExpected != serverCtx.Config.RPC.ListenAddress {
t.Errorf("RPCListenAddress was not set from env. var. %q", testCommon.envVarName)
}
Expand All @@ -376,6 +390,8 @@ func TestInterceptConfigsPreRunHandlerPrecedenceConfigFile(t *testing.T) {
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(testCommon.cmd)

if TestAddrExpected != serverCtx.Config.RPC.ListenAddress {
t.Errorf("RPCListenAddress was not read from file %q", testCommon.configTomlPath)
}
Expand All @@ -392,6 +408,8 @@ func TestInterceptConfigsPreRunHandlerPrecedenceConfigDefault(t *testing.T) {
t.Fatalf("function failed with [%T] %v", err, err)
}

serverCtx = server.GetServerContextFromCmd(testCommon.cmd)

if serverCtx.Config.RPC.ListenAddress != "tcp://127.0.0.1:26657" {
t.Error("RPCListenAddress is not using default")
}
Expand Down
2 changes: 1 addition & 1 deletion simapp/simd/cmd/root_v2.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ func NewRootCmd() *cobra.Command {
cmd.SetOut(cmd.OutOrStdout())
cmd.SetErr(cmd.ErrOrStderr())

clientCtx = clientCtx.WithCmdContext(cmd.Context())
clientCtx = clientCtx.WithCmdContext(cmd.Context()).WithViper("")
clientCtx, err := client.ReadPersistentCommandFlags(clientCtx, cmd.Flags())
if err != nil {
return err
Expand Down

0 comments on commit ef2fbba

Please sign in to comment.