|
@@ -15,11 +15,6 @@ import (
|
|
|
"code.senomas.com/go/util"
|
|
|
)
|
|
|
|
|
|
-// Variables struct
|
|
|
-type Variables struct {
|
|
|
- Env map[string]string
|
|
|
-}
|
|
|
-
|
|
|
func parseYAML(text string) map[string]interface{} {
|
|
|
val := make(map[string]interface{})
|
|
|
err := yaml.Unmarshal([]byte(text), &val)
|
|
@@ -35,8 +30,15 @@ func parseJSON(text string) map[string]interface{} {
|
|
|
}
|
|
|
|
|
|
func value(vs ...interface{}) interface{} {
|
|
|
+ fmt.Printf("TEST VALUES [%v]\n", vs)
|
|
|
for _, v := range vs {
|
|
|
- if v != nil {
|
|
|
+ if vv, ok := v.(string); ok {
|
|
|
+ fmt.Printf("TEST VALUE STRING [%s]\n", vv)
|
|
|
+ if len(vv) > 0 {
|
|
|
+ return vv
|
|
|
+ }
|
|
|
+ } else if v != nil {
|
|
|
+ fmt.Printf("TEST VALUE ELSE [%v]\n", vv)
|
|
|
return v
|
|
|
}
|
|
|
}
|
|
@@ -58,8 +60,18 @@ func split(v string, sep string) []string {
|
|
|
return strings.Split(v, sep)
|
|
|
}
|
|
|
|
|
|
-func ift(test bool, vt, vf interface{}) interface{} {
|
|
|
- if test {
|
|
|
+func ift(test interface{}, vt, vf interface{}) interface{} {
|
|
|
+ var tb bool
|
|
|
+ if tv, ok := test.(bool); ok {
|
|
|
+ tb = tv
|
|
|
+ } else if tv, ok := test.(string); ok {
|
|
|
+ tb = len(tv) > 0
|
|
|
+ } else if tv, ok := test.(int); ok {
|
|
|
+ tb = tv != 0
|
|
|
+ } else {
|
|
|
+ tb = test != nil
|
|
|
+ }
|
|
|
+ if tb {
|
|
|
return vt
|
|
|
}
|
|
|
return vf
|
|
@@ -119,7 +131,7 @@ func main() {
|
|
|
}
|
|
|
|
|
|
var bb bytes.Buffer
|
|
|
- err = tmpl.Execute(&bb, &Variables{env})
|
|
|
+ err = tmpl.Execute(&bb, env)
|
|
|
util.Check("Execute error %v", err)
|
|
|
fmt.Println(html.UnescapeString(bb.String()))
|
|
|
}
|