diff --git a/cmd/jen/internal/spec/spec.go b/cmd/jen/internal/spec/spec.go index 6d994a5..694bd49 100644 --- a/cmd/jen/internal/spec/spec.go +++ b/cmd/jen/internal/spec/spec.go @@ -231,8 +231,13 @@ func loadConfirmStep(_map yaml.Map) (exec.Executable, error) { if err != nil { return nil, err } + defaultValue, err := getOptionalBool(_map, "default", false) + if err != nil { + return nil, err + } return steps.Confirm{ Message: message, + Default: defaultValue, Then: executables, }, nil } diff --git a/cmd/jen/internal/spec/spec_test.go b/cmd/jen/internal/spec/spec_test.go index 8adf27c..c50f92a 100644 --- a/cmd/jen/internal/spec/spec_test.go +++ b/cmd/jen/internal/spec/spec_test.go @@ -94,6 +94,26 @@ then: }, }, }, + { + Name: "confirm with default true", + Buffer: ` +confirm: Message +default: true +then: + - input: + question: Message + var: Variable`, + Expected: steps.Confirm{ + Message: "Message", + Default: true, + Then: exec.Executables{ + input.Prompt{ + Message: "Message", + Var: "Variable", + }, + }, + }, + }, { Name: "set step", Buffer: ` diff --git a/cmd/jen/internal/steps/confirm.go b/cmd/jen/internal/steps/confirm.go index 5e3a000..84ea70f 100644 --- a/cmd/jen/internal/steps/confirm.go +++ b/cmd/jen/internal/steps/confirm.go @@ -11,6 +11,7 @@ import ( // user answers Yes when prompted for given message type Confirm struct { Message string + Default bool Then exec.Executables } @@ -26,7 +27,7 @@ func (c Confirm) Execute(context exec.Context) error { } prompt := &survey.Confirm{ Message: message, - Default: false, + Default: c.Default, } value := false if err := survey.AskOne(prompt, &value); err != nil {