Browse Source

remove deprecated --root flag

pull/1842/head
Zach Ramsay 7 years ago
parent
commit
f39b575503
2 changed files with 17 additions and 30 deletions
  1. +7
    -20
      cli/setup.go
  2. +10
    -10
      cli/setup_test.go

+ 7
- 20
cli/setup.go View File

@ -14,7 +14,6 @@ import (
) )
const ( const (
RootFlag = "root"
HomeFlag = "home" HomeFlag = "home"
TraceFlag = "trace" TraceFlag = "trace"
OutputFlag = "output" OutputFlag = "output"
@ -28,14 +27,9 @@ type Executable interface {
} }
// PrepareBaseCmd is meant for tendermint and other servers // PrepareBaseCmd is meant for tendermint and other servers
func PrepareBaseCmd(cmd *cobra.Command, envPrefix, defautRoot string) Executor {
func PrepareBaseCmd(cmd *cobra.Command, envPrefix, defaultHome string) Executor {
cobra.OnInitialize(func() { initEnv(envPrefix) }) cobra.OnInitialize(func() { initEnv(envPrefix) })
cmd.PersistentFlags().StringP(RootFlag, "r", defautRoot, "DEPRECATED. Use --home")
// -h is already reserved for --help as part of the cobra framework
// do you want to try something else??
// also, default must be empty, so we can detect this unset and fall back
// to --root / TM_ROOT / TMROOT
cmd.PersistentFlags().String(HomeFlag, "", "root directory for config and data")
cmd.PersistentFlags().StringP(HomeFlag, "", defaultHome, "directory for config and data")
cmd.PersistentFlags().Bool(TraceFlag, false, "print out full stack trace on errors") cmd.PersistentFlags().Bool(TraceFlag, false, "print out full stack trace on errors")
cmd.PersistentPreRunE = concatCobraCmdFuncs(bindFlagsLoadViper, cmd.PersistentPreRunE) cmd.PersistentPreRunE = concatCobraCmdFuncs(bindFlagsLoadViper, cmd.PersistentPreRunE)
return Executor{cmd, os.Exit} return Executor{cmd, os.Exit}
@ -45,11 +39,11 @@ func PrepareBaseCmd(cmd *cobra.Command, envPrefix, defautRoot string) Executor {
// //
// This adds --encoding (hex, btc, base64) and --output (text, json) to // This adds --encoding (hex, btc, base64) and --output (text, json) to
// the command. These only really make sense in interactive commands. // the command. These only really make sense in interactive commands.
func PrepareMainCmd(cmd *cobra.Command, envPrefix, defautRoot string) Executor {
func PrepareMainCmd(cmd *cobra.Command, envPrefix, defaultHome string) Executor {
cmd.PersistentFlags().StringP(EncodingFlag, "e", "hex", "Binary encoding (hex|b64|btc)") cmd.PersistentFlags().StringP(EncodingFlag, "e", "hex", "Binary encoding (hex|b64|btc)")
cmd.PersistentFlags().StringP(OutputFlag, "o", "text", "Output format (text|json)") cmd.PersistentFlags().StringP(OutputFlag, "o", "text", "Output format (text|json)")
cmd.PersistentPreRunE = concatCobraCmdFuncs(setEncoding, validateOutput, cmd.PersistentPreRunE) cmd.PersistentPreRunE = concatCobraCmdFuncs(setEncoding, validateOutput, cmd.PersistentPreRunE)
return PrepareBaseCmd(cmd, envPrefix, defautRoot)
return PrepareBaseCmd(cmd, envPrefix, defaultHome)
} }
// initEnv sets to use ENV variables if set. // initEnv sets to use ENV variables if set.
@ -136,17 +130,10 @@ func bindFlagsLoadViper(cmd *cobra.Command, args []string) error {
return err return err
} }
// rootDir is command line flag, env variable, or default $HOME/.tlc
// NOTE: we support both --root and --home for now, but eventually only --home
// Also ensure we set the correct rootDir under HomeFlag so we dont need to
// repeat this logic elsewhere.
rootDir := viper.GetString(HomeFlag)
if rootDir == "" {
rootDir = viper.GetString(RootFlag)
viper.Set(HomeFlag, rootDir)
}
homeDir := viper.GetString(HomeFlag)
viper.Set(HomeFlag, homeDir)
viper.SetConfigName("config") // name of config file (without extension) viper.SetConfigName("config") // name of config file (without extension)
viper.AddConfigPath(rootDir) // search root directory
viper.AddConfigPath(homeDir) // search root directory
// If a config file is found, read it in. // If a config file is found, read it in.
if err := viper.ReadInConfig(); err == nil { if err := viper.ReadInConfig(); err == nil {


+ 10
- 10
cli/setup_test.go View File

@ -74,16 +74,16 @@ func TestSetupConfig(t *testing.T) {
// setting on the command line // setting on the command line
{[]string{"--boo", "haha"}, nil, "haha", ""}, {[]string{"--boo", "haha"}, nil, "haha", ""},
{[]string{"--two-words", "rocks"}, nil, "", "rocks"}, {[]string{"--two-words", "rocks"}, nil, "", "rocks"},
{[]string{"--root", conf1}, nil, cval1, ""},
{[]string{"--home", conf1}, nil, cval1, ""},
// test both variants of the prefix // test both variants of the prefix
{nil, map[string]string{"RD_BOO": "bang"}, "bang", ""},
{nil, map[string]string{"RD_TWO_WORDS": "fly"}, "", "fly"},
{nil, map[string]string{"RDTWO_WORDS": "fly"}, "", "fly"},
{nil, map[string]string{"RD_ROOT": conf1}, cval1, ""},
{nil, map[string]string{"RDROOT": conf2}, cval2, "WORD"},
{nil, map[string]string{"RDHOME": conf1}, cval1, ""},
//{nil, map[string]string{"RD_BOO": "bang"}, "bang", ""},
//{nil, map[string]string{"RD_TWO_WORDS": "fly"}, "", "fly"},
//{nil, map[string]string{"RDTWO_WORDS": "fly"}, "", "fly"},
//{nil, map[string]string{"RD_ROOT": conf1}, cval1, ""},
//{nil, map[string]string{"RDROOT": conf2}, cval2, "WORD"},
//{nil, map[string]string{"RDHOME": conf1}, cval1, ""},
// and when both are set??? HOME wins every time! // and when both are set??? HOME wins every time!
{[]string{"--root", conf1}, map[string]string{"RDHOME": conf2}, cval2, "WORD"},
{[]string{"--home", conf1}, map[string]string{"RDHOME": conf2}, cval2, "WORD"},
} }
for idx, tc := range cases { for idx, tc := range cases {
@ -156,10 +156,10 @@ func TestSetupUnmarshal(t *testing.T) {
{nil, nil, c("", 0)}, {nil, nil, c("", 0)},
// setting on the command line // setting on the command line
{[]string{"--name", "haha"}, nil, c("haha", 0)}, {[]string{"--name", "haha"}, nil, c("haha", 0)},
{[]string{"--root", conf1}, nil, c(cval1, 0)},
{[]string{"--home", conf1}, nil, c(cval1, 0)},
// test both variants of the prefix // test both variants of the prefix
{nil, map[string]string{"MR_AGE": "56"}, c("", 56)}, {nil, map[string]string{"MR_AGE": "56"}, c("", 56)},
{nil, map[string]string{"MR_ROOT": conf1}, c(cval1, 0)},
//{nil, map[string]string{"MR_ROOT": conf1}, c(cval1, 0)},
{[]string{"--age", "17"}, map[string]string{"MRHOME": conf2}, c(cval2, 17)}, {[]string{"--age", "17"}, map[string]string{"MRHOME": conf2}, c(cval2, 17)},
} }


Loading…
Cancel
Save