Addeed verification before building

This commit is contained in:
Martino Ferrari
2026-01-30 15:01:30 +01:00
parent a55c4b9c7c
commit d98593e67b

View File

@@ -72,6 +72,45 @@ func runBuild(args []string) {
os.Exit(1) os.Exit(1)
} }
// 1. Run Validation
tree := index.NewProjectTree()
for _, file := range files {
content, err := os.ReadFile(file)
if err != nil {
logger.Printf("Error reading %s: %v\n", file, err)
os.Exit(1)
}
p := parser.NewParser(string(content))
config, err := p.Parse()
if err != nil {
logger.Printf("%s: Grammar error: %v\n", file, err)
os.Exit(1)
}
tree.AddFile(file, config)
}
v := validator.NewValidator(tree, ".")
v.ValidateProject()
hasErrors := false
for _, diag := range v.Diagnostics {
level := "ERROR"
if diag.Level == validator.LevelWarning {
level = "WARNING"
} else {
hasErrors = true
}
logger.Printf("%s:%d:%d: %s: %s\n", diag.File, diag.Position.Line, diag.Position.Column, level, diag.Message)
}
if hasErrors {
logger.Println("Build failed due to validation errors.")
os.Exit(1)
}
// 2. Perform Build
b := builder.NewBuilder(files, overrides) b := builder.NewBuilder(files, overrides)
var out *os.File = os.Stdout var out *os.File = os.Stdout