|
1 | 1 | package template |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "bytes" |
5 | | - "crypto/sha1" |
6 | | - "encoding/json" |
7 | 4 | "fmt" |
8 | | - "io" |
9 | 5 | "log" |
10 | 6 | "os" |
11 | 7 | "reflect" |
12 | 8 | "regexp" |
13 | 9 | "strings" |
| 10 | + |
| 11 | + "github.com/Masterminds/sprig/v3" |
14 | 12 | ) |
15 | 13 |
|
| 14 | +var sprigFuncMap = sprig.TxtFuncMap() |
| 15 | + |
16 | 16 | func keys(input interface{}) (interface{}, error) { |
17 | 17 | if input == nil { |
18 | 18 | return nil, nil |
@@ -82,26 +82,15 @@ func contains(input interface{}, key interface{}) bool { |
82 | 82 | } |
83 | 83 |
|
84 | 84 | func hashSha1(input string) string { |
85 | | - h := sha1.New() |
86 | | - io.WriteString(h, input) |
87 | | - return fmt.Sprintf("%x", h.Sum(nil)) |
| 85 | + return sprigFuncMap["sha1sum"].(func(string) string)(input) |
88 | 86 | } |
89 | 87 |
|
90 | 88 | func marshalJson(input interface{}) (string, error) { |
91 | | - var buf bytes.Buffer |
92 | | - enc := json.NewEncoder(&buf) |
93 | | - if err := enc.Encode(input); err != nil { |
94 | | - return "", err |
95 | | - } |
96 | | - return strings.TrimSuffix(buf.String(), "\n"), nil |
| 89 | + return sprigFuncMap["mustToJson"].(func(interface{}) (string, error))(input) |
97 | 90 | } |
98 | 91 |
|
99 | 92 | func unmarshalJson(input string) (interface{}, error) { |
100 | | - var v interface{} |
101 | | - if err := json.Unmarshal([]byte(input), &v); err != nil { |
102 | | - return nil, err |
103 | | - } |
104 | | - return v, nil |
| 93 | + return sprigFuncMap["mustFromJson"].(func(string) (interface{}, error))(input) |
105 | 94 | } |
106 | 95 |
|
107 | 96 | // arrayClosest find the longest matching substring in values |
@@ -132,32 +121,17 @@ func dirList(path string) ([]string, error) { |
132 | 121 |
|
133 | 122 | // coalesce returns the first non nil argument |
134 | 123 | func coalesce(input ...interface{}) interface{} { |
135 | | - for _, v := range input { |
136 | | - if v != nil { |
137 | | - return v |
138 | | - } |
139 | | - } |
140 | | - return nil |
| 124 | + return sprigFuncMap["coalesce"].(func(...interface{}) interface{})(input...) |
141 | 125 | } |
142 | 126 |
|
143 | 127 | // trimPrefix returns a string without the prefix, if present |
144 | 128 | func trimPrefix(prefix, s string) string { |
145 | | - return strings.TrimPrefix(s, prefix) |
| 129 | + return sprigFuncMap["trimPrefix"].(func(string, string) string)(prefix, s) |
146 | 130 | } |
147 | 131 |
|
148 | 132 | // trimSuffix returns a string without the suffix, if present |
149 | 133 | func trimSuffix(suffix, s string) string { |
150 | | - return strings.TrimSuffix(s, suffix) |
151 | | -} |
152 | | - |
153 | | -// toLower return the string in lower case |
154 | | -func toLower(s string) string { |
155 | | - return strings.ToLower(s) |
156 | | -} |
157 | | - |
158 | | -// toUpper return the string in upper case |
159 | | -func toUpper(s string) string { |
160 | | - return strings.ToUpper(s) |
| 134 | + return sprigFuncMap["trimSuffix"].(func(string, string) string)(suffix, s) |
161 | 135 | } |
162 | 136 |
|
163 | 137 | // when returns the trueValue when the condition is true and the falseValue otherwise |
|
0 commit comments