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
}