Skip to content

Commit 210db6f

Browse files
authored
Fix bug where vars could not contain commas (#85)
2 parents 7fc3515 + dbecd58 commit 210db6f

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

cmd/run/run.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ func NewRunCommand(cfg *command.Config) *cobra.Command {
417417
}
418418

419419
cmd.Flags().String("file", "", "Path to a .prompt.yml file.")
420-
cmd.Flags().StringSlice("var", []string{}, "Template variables for prompt files (can be used multiple times: --var name=value)")
420+
cmd.Flags().StringArray("var", []string{}, "Template variables for prompt files (can be used multiple times: --var name=value)")
421421
cmd.Flags().String("max-tokens", "", "Limit the maximum tokens for the model response.")
422422
cmd.Flags().String("temperature", "", "Controls randomness in the response, use lower to be more deterministic.")
423423
cmd.Flags().String("top-p", "", "Controls text diversity by selecting the most probable words until a set probability is reached.")
@@ -429,7 +429,7 @@ func NewRunCommand(cfg *command.Config) *cobra.Command {
429429

430430
// parseTemplateVariables parses template variables from the --var flags
431431
func parseTemplateVariables(flags *pflag.FlagSet) (map[string]string, error) {
432-
varFlags, err := flags.GetStringSlice("var")
432+
varFlags, err := flags.GetStringArray("var")
433433
if err != nil {
434434
return nil, err
435435
}

cmd/run/run_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,11 @@ func TestParseTemplateVariables(t *testing.T) {
450450
varFlags: []string{"equation=x = y + 2"},
451451
expected: map[string]string{"equation": "x = y + 2"},
452452
},
453+
{
454+
name: "value with commas",
455+
varFlags: []string{"city=paris, milan", "countries=france, italy, spain"},
456+
expected: map[string]string{"city": "paris, milan", "countries": "france, italy, spain"},
457+
},
453458
{
454459
name: "empty strings are skipped",
455460
varFlags: []string{"", "name=John", " "},
@@ -475,7 +480,7 @@ func TestParseTemplateVariables(t *testing.T) {
475480
for _, tt := range tests {
476481
t.Run(tt.name, func(t *testing.T) {
477482
flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
478-
flags.StringSlice("var", tt.varFlags, "test flag")
483+
flags.StringArray("var", tt.varFlags, "test flag")
479484

480485
result, err := parseTemplateVariables(flags)
481486

0 commit comments

Comments
 (0)