56 lines
1014 B
Go
56 lines
1014 B
Go
package runner
|
|
|
|
import (
|
|
"math"
|
|
"strings"
|
|
)
|
|
|
|
func stringFromMap(values map[string]any, key string) string {
|
|
value, _ := values[key].(string)
|
|
return strings.TrimSpace(value)
|
|
}
|
|
|
|
func stringFromAny(value any) string {
|
|
switch typed := value.(type) {
|
|
case string:
|
|
return strings.TrimSpace(typed)
|
|
case map[string]any:
|
|
if text := stringFromAny(typed["url"]); text != "" {
|
|
return text
|
|
}
|
|
if ref, ok := typed["assetRef"].(map[string]any); ok {
|
|
return stringFromAny(ref["url"])
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func boolFromMap(values map[string]any, key string) bool {
|
|
value, _ := values[key].(bool)
|
|
return value
|
|
}
|
|
|
|
func intFromPolicy(values map[string]any, key string) int {
|
|
switch value := values[key].(type) {
|
|
case int:
|
|
return value
|
|
case float64:
|
|
return int(math.Round(value))
|
|
default:
|
|
return 0
|
|
}
|
|
}
|
|
|
|
func floatFromAny(value any) float64 {
|
|
switch typed := value.(type) {
|
|
case int:
|
|
return float64(typed)
|
|
case int64:
|
|
return float64(typed)
|
|
case float64:
|
|
return typed
|
|
default:
|
|
return 0
|
|
}
|
|
}
|