func verifyDependsOn()

in block.go [105:125]


func verifyDependsOn(b Block) error {
	dependsOn, ok := b.HclBlock().Attributes()["depends_on"]
	if !ok {
		return nil
	}
	exprString := strings.TrimSpace(dependsOn.ExprString())
	if !strings.HasPrefix(exprString, "[") && !strings.HasSuffix(exprString, "]") {
		return fmt.Errorf("`depends_on` must be a list of block address")
	}
	elements := strings.Split(strings.TrimSuffix(strings.TrimPrefix(exprString, "["), "]"), ",")
	for _, element := range elements {
		element = strings.Trim(element, " \t\r\n")
		if element == "" {
			continue
		}
		if !b.Config().ValidBlockAddress(element) {
			return fmt.Errorf("`depends_on` must be a list of block address, invalid address: %s", element)
		}
	}
	return nil
}