Skip to content

Commit afd7b86

Browse files
authored
Merge pull request #2309 from lawrence3699/fix/slice-separator-env-var
fix: apply SliceFlagSeparator to env var sources
2 parents f831e58 + 8d51bb9 commit afd7b86

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

command_run.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ func (cmd *Command) run(ctx context.Context, osArgs []string) (_ context.Context
213213
}
214214

215215
for _, flag := range cmd.allFlags() {
216+
cmd.setMultiValueParsingConfig(flag)
216217
isSet := flag.IsSet()
217218
if err := flag.PostParse(); err != nil {
218219
return ctx, err

command_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4590,6 +4590,24 @@ func TestCommandSliceFlagSeparator(t *testing.T) {
45904590
r.Equal([]string{"ff", "dd", "gg", "t,u"}, cmd.Value("foo"))
45914591
}
45924592

4593+
func TestCommandSliceFlagSeparatorFromEnvVar(t *testing.T) {
4594+
t.Setenv("APP_FOO", "0 1 2")
4595+
4596+
cmd := &Command{
4597+
SliceFlagSeparator: " ",
4598+
Flags: []Flag{
4599+
&StringSliceFlag{
4600+
Name: "foo",
4601+
Sources: EnvVars("APP_FOO"),
4602+
},
4603+
},
4604+
}
4605+
4606+
r := require.New(t)
4607+
r.NoError(cmd.Run(buildTestContext(t), []string{"app"}))
4608+
r.Equal([]string{"0", "1", "2"}, cmd.Value("foo"))
4609+
}
4610+
45934611
func TestCommandMapKeyValueFlagSeparator(t *testing.T) {
45944612
cmd := &Command{
45954613
MapFlagKeyValueSeparator: ":",

0 commit comments

Comments
 (0)