![dependabot[bot]](/assets/img/avatar_default.png)
Bumps the golang group with 2 updates in the / directory: [github.com/Microsoft/hcsshim](https://github.com/Microsoft/hcsshim) and [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo). Updates `github.com/Microsoft/hcsshim` from 0.12.2 to 0.12.3 - [Release notes](https://github.com/Microsoft/hcsshim/releases) - [Commits](https://github.com/Microsoft/hcsshim/compare/v0.12.2...v0.12.3) Updates `github.com/onsi/ginkgo/v2` from 2.17.1 to 2.17.3 - [Release notes](https://github.com/onsi/ginkgo/releases) - [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/ginkgo/compare/v2.17.1...v2.17.3) Updates `github.com/onsi/gomega` from 1.32.0 to 1.33.0 - [Release notes](https://github.com/onsi/gomega/releases) - [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/gomega/compare/v1.32.0...v1.33.0) Updates `golang.org/x/sys` from 0.18.0 to 0.19.0 - [Commits](https://github.com/golang/sys/compare/v0.18.0...v0.19.0) --- updated-dependencies: - dependency-name: github.com/Microsoft/hcsshim dependency-type: direct:production update-type: version-update:semver-patch dependency-group: golang - dependency-name: github.com/onsi/ginkgo/v2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: golang - dependency-name: github.com/onsi/gomega dependency-type: direct:production update-type: version-update:semver-minor dependency-group: golang - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor dependency-group: golang ... Signed-off-by: dependabot[bot] <support@github.com>
119 lines
2.3 KiB
Go
119 lines
2.3 KiB
Go
package sprig
|
|
|
|
func get(d map[string]interface{}, key string) interface{} {
|
|
if val, ok := d[key]; ok {
|
|
return val
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func set(d map[string]interface{}, key string, value interface{}) map[string]interface{} {
|
|
d[key] = value
|
|
return d
|
|
}
|
|
|
|
func unset(d map[string]interface{}, key string) map[string]interface{} {
|
|
delete(d, key)
|
|
return d
|
|
}
|
|
|
|
func hasKey(d map[string]interface{}, key string) bool {
|
|
_, ok := d[key]
|
|
return ok
|
|
}
|
|
|
|
func pluck(key string, d ...map[string]interface{}) []interface{} {
|
|
res := []interface{}{}
|
|
for _, dict := range d {
|
|
if val, ok := dict[key]; ok {
|
|
res = append(res, val)
|
|
}
|
|
}
|
|
return res
|
|
}
|
|
|
|
func keys(dicts ...map[string]interface{}) []string {
|
|
k := []string{}
|
|
for _, dict := range dicts {
|
|
for key := range dict {
|
|
k = append(k, key)
|
|
}
|
|
}
|
|
return k
|
|
}
|
|
|
|
func pick(dict map[string]interface{}, keys ...string) map[string]interface{} {
|
|
res := map[string]interface{}{}
|
|
for _, k := range keys {
|
|
if v, ok := dict[k]; ok {
|
|
res[k] = v
|
|
}
|
|
}
|
|
return res
|
|
}
|
|
|
|
func omit(dict map[string]interface{}, keys ...string) map[string]interface{} {
|
|
res := map[string]interface{}{}
|
|
|
|
omit := make(map[string]bool, len(keys))
|
|
for _, k := range keys {
|
|
omit[k] = true
|
|
}
|
|
|
|
for k, v := range dict {
|
|
if _, ok := omit[k]; !ok {
|
|
res[k] = v
|
|
}
|
|
}
|
|
return res
|
|
}
|
|
|
|
func dict(v ...interface{}) map[string]interface{} {
|
|
dict := map[string]interface{}{}
|
|
lenv := len(v)
|
|
for i := 0; i < lenv; i += 2 {
|
|
key := strval(v[i])
|
|
if i+1 >= lenv {
|
|
dict[key] = ""
|
|
continue
|
|
}
|
|
dict[key] = v[i+1]
|
|
}
|
|
return dict
|
|
}
|
|
|
|
func values(dict map[string]interface{}) []interface{} {
|
|
values := []interface{}{}
|
|
for _, value := range dict {
|
|
values = append(values, value)
|
|
}
|
|
|
|
return values
|
|
}
|
|
|
|
func dig(ps ...interface{}) (interface{}, error) {
|
|
if len(ps) < 3 {
|
|
panic("dig needs at least three arguments")
|
|
}
|
|
dict := ps[len(ps)-1].(map[string]interface{})
|
|
def := ps[len(ps)-2]
|
|
ks := make([]string, len(ps)-2)
|
|
for i := 0; i < len(ks); i++ {
|
|
ks[i] = ps[i].(string)
|
|
}
|
|
|
|
return digFromDict(dict, def, ks)
|
|
}
|
|
|
|
func digFromDict(dict map[string]interface{}, d interface{}, ks []string) (interface{}, error) {
|
|
k, ns := ks[0], ks[1:len(ks)]
|
|
step, has := dict[k]
|
|
if !has {
|
|
return d, nil
|
|
}
|
|
if len(ns) == 0 {
|
|
return step, nil
|
|
}
|
|
return digFromDict(step.(map[string]interface{}), d, ns)
|
|
}
|