(context *CommandExecContext, parameters []parser.Parameter, config config.Config)
| 214 | } |
| 215 | |
| 216 | func (b CommandBuilder) validateArguments(context *CommandExecContext, parameters []parser.Parameter, config config.Config) error { |
| 217 | err := errors.New("Invalid arguments:") |
| 218 | result := true |
| 219 | for _, parameter := range parameters { |
| 220 | value := b.getValue(parameter, context, config) |
| 221 | if parameter.Required && value == "" { |
| 222 | result = false |
| 223 | err = fmt.Errorf("%w\n Argument --%s is missing", err, parameter.Name) |
| 224 | } |
| 225 | if value != "" && len(parameter.AllowedValues) > 0 { |
| 226 | valid := false |
| 227 | for _, allowedValue := range parameter.AllowedValues { |
| 228 | if fmt.Sprint(allowedValue) == value { |
| 229 | valid = true |
| 230 | break |
| 231 | } |
| 232 | } |
| 233 | if !valid { |
| 234 | allowedValues := b.formatAllowedValues(parameter.AllowedValues) |
| 235 | result = false |
| 236 | err = fmt.Errorf("%w\n Argument value '%v' for --%s is invalid, allowed values: %s", err, value, parameter.Name, allowedValues) |
| 237 | } |
| 238 | } |
| 239 | } |
| 240 | if result { |
| 241 | return nil |
| 242 | } |
| 243 | return err |
| 244 | } |
| 245 | |
| 246 | func (b CommandBuilder) logger(debug bool, writer io.Writer) log.Logger { |
| 247 | if debug { |
no test coverage detected