func writeHandlebarsIfNode()

in dev/import-beats/streams_config_parser.go [157:187]


func writeHandlebarsIfNode(ifNode *parse.IfNode, inputType string) []byte {
	var buffer bytes.Buffer
	if isIfNodeEqInput(ifNode) {
		if isIfNodeEqInputInputType(ifNode, inputType) {
			if ifNode.List != nil {
				buffer.Write(configForInputForNode(ifNode.List, inputType))
			}
		} else {
			if ifNode.ElseList != nil {
				buffer.Write(configForInputForNode(ifNode.ElseList, inputType))
			}
		}
	} else {
		if len(ifNode.Pipe.Cmds[0].Args) == 1 {
			var1 := ifNode.Pipe.Cmds[0].Args[0].String()[1:]
			buffer.WriteString(fmt.Sprintf("{{#if %s}}", var1))
		} else {
			buffer.WriteString(fmt.Sprintf("{{#if %s}}", ifNode.Pipe.String()))
		}

		if ifNode.List != nil {
			buffer.Write(configForInputForNode(ifNode.List, inputType))
		}
		if ifNode.ElseList != nil {
			buffer.WriteString("{{else}}")
			buffer.Write(configForInputForNode(ifNode.ElseList, inputType))
		}
		buffer.WriteString("{{/if}}")
	}
	return buffer.Bytes()
}