mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
commands: Properly handle CLI slice arguments
Like `--disableKinds` -- this handling was kind of broken when we recently moved this from global vars See #4607
This commit is contained in:
parent
bede93de00
commit
27a524b090
2 changed files with 19 additions and 1 deletions
|
@ -57,8 +57,10 @@ func TestCommandsPersistentFlags(t *testing.T) {
|
||||||
}{{[]string{"server",
|
}{{[]string{"server",
|
||||||
"--config=myconfig.toml",
|
"--config=myconfig.toml",
|
||||||
"--contentDir=mycontent",
|
"--contentDir=mycontent",
|
||||||
|
"--disableKinds=page,home",
|
||||||
"--layoutDir=mylayouts",
|
"--layoutDir=mylayouts",
|
||||||
"--theme=mytheme",
|
"--theme=mytheme",
|
||||||
|
"--gc",
|
||||||
"--themesDir=mythemes",
|
"--themesDir=mythemes",
|
||||||
"--cleanDestinationDir",
|
"--cleanDestinationDir",
|
||||||
"--navigateToChanged",
|
"--navigateToChanged",
|
||||||
|
@ -100,7 +102,10 @@ func TestCommandsPersistentFlags(t *testing.T) {
|
||||||
assert.Equal("mytheme", cfg.GetString("theme"))
|
assert.Equal("mytheme", cfg.GetString("theme"))
|
||||||
assert.Equal("mythemes", cfg.GetString("themesDir"))
|
assert.Equal("mythemes", cfg.GetString("themesDir"))
|
||||||
|
|
||||||
|
assert.Equal([]string{"page", "home"}, cfg.Get("disableKinds"))
|
||||||
|
|
||||||
assert.True(cfg.GetBool("uglyURLs"))
|
assert.True(cfg.GetBool("uglyURLs"))
|
||||||
|
assert.True(cfg.GetBool("gc"))
|
||||||
|
|
||||||
// The flag is named i18n-warnings
|
// The flag is named i18n-warnings
|
||||||
assert.True(cfg.GetBool("logI18nWarnings"))
|
assert.True(cfg.GetBool("logI18nWarnings"))
|
||||||
|
|
|
@ -243,7 +243,20 @@ If you need to set this configuration value from the command line, set it via an
|
||||||
if targetKey != "" {
|
if targetKey != "" {
|
||||||
configKey = targetKey
|
configKey = targetKey
|
||||||
}
|
}
|
||||||
|
// Gotta love this API.
|
||||||
|
switch f.Value.Type() {
|
||||||
|
case "bool":
|
||||||
|
bv, _ := flags.GetBool(key)
|
||||||
|
cfg.Set(configKey, bv)
|
||||||
|
case "string":
|
||||||
cfg.Set(configKey, f.Value.String())
|
cfg.Set(configKey, f.Value.String())
|
||||||
|
case "stringSlice":
|
||||||
|
bv, _ := flags.GetStringSlice(key)
|
||||||
|
cfg.Set(configKey, bv)
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("update switch with %s", f.Value.Type()))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue