在 confd/go-templates 中使用多个条件语句if-and-or
2023-01-14 tech confd golang 1 mins 575 字
confd 的使用了 go 的 text/template
库编写模版。
官方的教程非常简单,if 逻辑远不能处理我们复杂的逻辑——https://github.com/kelseyhightower/confd/blob/master/docs/templates.md, templates库的也一样查不出来,只看到了这样的描述:
{{if pipeline}} T1 {{else}} T0 {{end}}
If the value of the pipeline is empty, T0 is executed;
otherwise, T1 is executed. Dot is unaffected.
目前需要在 if 逻辑中使用 and/or,需要使用 and/or
方法代替上文的 pipeline
:
{{ if and .condition1 .condition2 }}
<!-- SHOW SOMETHING -->
{{ end }}
{{ if and (eq .var1 "8") (eq .var2 "9") (eq .var "10") }}
<!-- SHOW SOMETHING -->
{{ end }}