func variableNamesIfNode()

in dev/import-beats/streams_config_parser.go [345:370]


func variableNamesIfNode(ifNode *parse.IfNode, inputType string, vars []string) []string {
	var variables []string
	variables = append(variables, vars...)

	if isIfNodeEqInput(ifNode) {
		if isIfNodeEqInputInputType(ifNode, inputType) {
			if ifNode.List != nil {
				variables = uniqueStringValues(append(variableNamesForInputForNode(ifNode.List, inputType, variables)))
			}
		} else {
			if ifNode.ElseList != nil {
				variables = uniqueStringValues(append(variableNamesForInputForNode(ifNode.ElseList, inputType, variables)))
			}
		}
	} else {
		if ifNode.List != nil {
			variables = uniqueStringValues(append(variableNamesForInputForNode(ifNode.List, inputType, variables)))
		}
		if ifNode.ElseList != nil {
			variables = uniqueStringValues(append(variableNamesForInputForNode(ifNode.ElseList, inputType, variables)))
		}

		variables = uniqueStringValues(append(variables, variableNamesForNodeArgs(ifNode.Pipe.Cmds[0].Args, variables)...))
	}
	return variables
}