ReviewOS

also looking at this

zig-utils/zig-test-framework

feat: load strict JSON configuration files

#19
Merged glennmichael123 wants to merge codex/issue-12-config into main
10 files +249 -286
src/main.zigmodified+14-0
Changes to src/main.zig
@@ -71,6 +71,20 @@ pub fn main(init: std.process.Init.Minimal) !void {
7171 return;
7272 }
7373
74 // Configuration establishes defaults; parsing the arguments again makes
75 // every explicitly supplied CLI flag take precedence.
76 var config_loader = lib.ConfigLoader.init(allocator);
77 defer config_loader.deinit();
78 if (cli_parser.options.config) |config_path| {
79 const config = config_loader.loadFromFile(config_path) catch |err| {
80 std.debug.print("Error: invalid configuration '{s}': {s}\n", .{ config_path, @errorName(err) });
81 std.process.exit(2);
82 };
83 cli_parser = lib.CLI.init(allocator);
84 try cli_parser.applyConfig(config);
85 try cli_parser.parse(args);
86 }
87
7488 // Check if we should use test discovery or programmatic tests
7589 const use_discovery = cli_parser.options.test_dir != null;
7690