| 8 | ) |
| 9 | |
| 10 | func GetDefaultValue(pipelineFlag latest.PipelineFlag) (interface{}, error) { |
| 11 | var ok bool |
| 12 | |
| 13 | switch pipelineFlag.Type { |
| 14 | case "", latest.PipelineFlagTypeBoolean: |
| 15 | val := false |
| 16 | if pipelineFlag.Default != nil { |
| 17 | val, ok = pipelineFlag.Default.(bool) |
| 18 | if !ok { |
| 19 | return nil, fmt.Errorf(" default is not a boolean") |
| 20 | } |
| 21 | } |
| 22 | return val, nil |
| 23 | case latest.PipelineFlagTypeString: |
| 24 | val := "" |
| 25 | if pipelineFlag.Default != nil { |
| 26 | val, ok = pipelineFlag.Default.(string) |
| 27 | if !ok { |
| 28 | return nil, fmt.Errorf("default is not a string") |
| 29 | } |
| 30 | } |
| 31 | return val, nil |
| 32 | case latest.PipelineFlagTypeInteger: |
| 33 | val := 0 |
| 34 | if pipelineFlag.Default != nil { |
| 35 | switch pipelineFlag.Default.(type) { |
| 36 | case float64: |
| 37 | floatVal, ok := pipelineFlag.Default.(float64) |
| 38 | if !ok { |
| 39 | return nil, fmt.Errorf("default is not an integer") |
| 40 | } |
| 41 | return int(floatVal), nil |
| 42 | case int: |
| 43 | intVal, ok := pipelineFlag.Default.(int) |
| 44 | if !ok { |
| 45 | return nil, fmt.Errorf("default is not an integer") |
| 46 | } |
| 47 | return intVal, nil |
| 48 | case string: |
| 49 | strVal, ok := pipelineFlag.Default.(string) |
| 50 | if !ok { |
| 51 | return nil, fmt.Errorf("default is not an integer") |
| 52 | } |
| 53 | intVal, err := strconv.ParseInt(strVal, 10, 0) |
| 54 | if err != nil { |
| 55 | return nil, err |
| 56 | } |
| 57 | return int(intVal), nil |
| 58 | } |
| 59 | return nil, fmt.Errorf("default is not an integer") |
| 60 | } |
| 61 | return val, nil |
| 62 | case latest.PipelineFlagTypeStringArray: |
| 63 | val := []string{} |
| 64 | if pipelineFlag.Default != nil { |
| 65 | for _, anyVal := range pipelineFlag.Default.([]interface{}) { |
| 66 | strVal, ok := anyVal.(string) |
| 67 | if !ok { |