packages/tools/bump-validator/main.go

51 lines
1.2 KiB
Go
Raw Normal View History

package main
import (
"fmt"
"os"
"path/filepath"
"strings"
)
// isDefinitionFile checks if the basename of the file is definition.yaml or collection.yaml
func isDefinitionFile(file string) bool {
basename := filepath.Base(file)
return basename == "definition.yaml" || basename == "collection.yaml"
}
// reduceRelated keeps only the definition files that are siblings or in a parten directory of the given file
func reduceRelated(file string, files []string) []string {
var relatedFiles []string
dir := filepath.Dir(file)
for _, f := range files {
otherDir := filepath.Dir(f)
if isDefinitionFile(f) && strings.HasPrefix(dir, otherDir) {
relatedFiles = append(relatedFiles, f)
}
}
return relatedFiles
}
func main() {
var missingVersionBump bool
files := os.Args[1:]
for _, file := range files {
// fmt.Println("Processing file ", file)
if isDefinitionFile(file) {
// fmt.Println("Skipping definition file ", file)
continue
}
relatedFiles := reduceRelated(file, files)
if len(relatedFiles) == 0 {
missingVersionBump = true
fmt.Println("Error: Version bump missing for file ", file)
}
}
if missingVersionBump {
os.Exit(1)
}
}