in pkg/gcptarget/gcptarget.go [282:311]
func checkPathGlob(expression string) error {
// check for path components / numbers
parts := strings.Split(expression, "/")
state := stateStart
for i := 0; i < len(parts); i++ {
item := parts[i]
switch {
case item == organization:
if state != stateStart {
return fmt.Errorf("unexpected %s element %d in %s", item, i, expression)
}
state = stateFolder
case item == folder:
if state != stateStart && state != stateFolder {
return fmt.Errorf("unexpected %s element %d in %s", item, i, expression)
}
state = stateFolder
case item == project:
state = stateProject
case item == "*":
case item == "**":
case item == "unknown":
case numberRegex.MatchString(item):
case state == stateProject && projectIDRegex.MatchString(item):
default:
return fmt.Errorf("unexpected item %s element %d in %s", item, i, expression)
}
}
return nil
}