mirror of
https://github.com/kairos-io/packages.git
synced 2025-06-23 21:57:18 +00:00
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
|
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)
|
||
|
}
|
||
|
}
|