code wiki / _hdl_build / nx_presubmit.nx
nx_presubmit.nx source
↩ module page · 21 lines · 910 B
1// nx_presubmit.nx -- CLI for the pre-submit correctness guard. usage: nx_presubmit <organ-name> [hdl] [runtime]
2// exit 0 FREE (create it) | 4 EXISTS-in-hdl_build (edit, don't create) | 3 SHADOW/DUAL risk (rename or edit).
3// license_tier: ORIGINAL
4import "nx_presubmit_lib.nx"
5
6const PS_OUTBUF: i64 = 1024 // verdict JSON buffer (rule 11: named, not inline)
7
8func main(argc: i64, argv: *i64) -> i64 {
9 if argc < 2 { es_puts("usage: nx_presubmit <organ-name> [hdl-dir] [runtime-dir]\n" as *u8); sys_exit(2); return 2 }
10 let name: *u8 = argv[1] as *u8
11 var hdl: *u8 = "buildroot/runtime/_hdl_build" as *u8
12 var rt: *u8 = "buildroot/runtime" as *u8
13 if argc >= 3 { hdl = argv[2] as *u8 }
14 if argc >= 4 { rt = argv[3] as *u8 }
15 let out: *u8 = sys_mmap(PS_OUTBUF)
16 let rc: i64 = ps_check(name, hdl, rt, out)
17 es_puts(out)
18 es_puts("\n" as *u8)
19 sys_exit(rc)
20 return rc
21}