code wiki / _hdl_build / nx_pub_todos_gate.nx
nx_pub_todos_gate.nx source
↩ module page · 80 lines · 5308 B
1import "nx_gate_gn.nx"
2// nx_pub_todos_gate.nx -- liar-kill gate for the publisher PIPELINE / TO-DO board. Sovereign fork/exec: run the
3// board organ, then assert the emitted nishifamily.com page is sovereign + lists the domain-less staged sites
4// with their blockers (the meet platform shows "domain" + "approval"), shows the DERIVED staged/held count, and
5// explains how a site goes live -- AND that the board itself is STAGED HELD (outward) for nishifamily.com. expect_exit: 0
6import "nx_syscalls.nx"
7
8func gp(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
9func gslen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n }
10func gfind(hay: *u8, hl: i64, needle: *u8) -> i64 {
11 let nl: i64 = gslen(needle); if nl == 0 { return 0-1 }
12 var i: i64 = 0
13 while i + nl <= hl { var k: i64=0; var hit: i64=1; while k<nl { if hay[i+k]!=needle[k]{hit=0;k=nl}else{k=k+1} } if hit==1 {return i} i=i+1 }
14 return 0-1
15}
16func ghas(hay: *u8, hl: i64, needle: *u8) -> i64 { if gfind(hay, hl, needle) >= 0 { return 1 } return 0 }
17func spawn(path: *u8, a0: *u8, a1: *u8, redir: *u8) -> i64 {
18 let pid: i64 = sys_fork()
19 if pid == 0 {
20 let fd: i64 = sys_openat_wr(redir, 420)
21 if fd >= 0 { sys_dup3(fd, 1, 0); sys_dup3(fd, 2, 0) }
22 let argv: *i64 = sys_mmap(64) as *i64
23 var n: i64 = 0
24 argv[0] = path as i64; n = 1
25 if (a0 as i64) != 0 { argv[n] = a0 as i64; n = n + 1 }
26 if (a1 as i64) != 0 { argv[n] = a1 as i64; n = n + 1 }
27 argv[n] = 0
28 let envp: *i64 = sys_mmap(16) as *i64
29 envp[0] = "PATH=/usr/bin:/bin\x00" as *u8 as i64; envp[1] = 0
30 sys_execve(path, argv, envp)
31 sys_exit(127)
32 }
33 let st: *i64 = sys_mmap(16) as *i64
34 sys_wait4(pid, st, 0)
35 return (st[0] >> 8) & 0xff
36}
37
38func main() -> i64 {
39 gp("=== nx_pub_todos_gate: publisher pipeline/to-do board for nishifamily.com ===\n" as *u8)
40 let RUNNER: *u8 = "_offc/nx_sov_build_run.elf\x00" as *u8
41 let SCR: *u8 = "knowledge/status/pub_todos_gate_scratch.log\x00" as *u8
42 spawn(RUNNER, "nx_pub_todos\x00" as *u8, 0 as *u8, SCR)
43
44 let lp: *i64 = sys_mmap(16) as *i64; lp[0] = 0
45 let h: *u8 = sys_read_file("web_assets/site_nishifamily/pipeline.html\x00" as *u8, lp)
46 if (h as i64) == 0 { gp("PUB-TODOS-GATE verdict=RED reason=page-missing\n" as *u8); sys_exit(1); return 1 }
47 let n: i64 = lp[0]
48 let lp2: *i64 = sys_mmap(16) as *i64; lp2[0] = 0
49 let q: *u8 = sys_read_file("knowledge/publish/site_todos_queue.tsv\x00" as *u8, lp2)
50 if (q as i64) == 0 { gp("PUB-TODOS-GATE verdict=RED reason=queue-missing\n" as *u8); sys_exit(1); return 1 }
51 let qn: i64 = lp2[0]
52 gp(" page bytes=" as *u8); gn(n); gp("\n" as *u8)
53
54 var pass: i64 = 0; var fail: i64 = 0
55 // sovereign page
56 if gfind(h, n, "<script" as *u8) < 0 { pass=pass+1 } else { fail=fail+1; gp(" FAIL has-script\n" as *u8) }
57 if gfind(h, n, "onclick" as *u8) < 0 { pass=pass+1 } else { fail=fail+1; gp(" FAIL has-onclick\n" as *u8) }
58 if ghas(h, n, "Nishi Family" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-brand\n" as *u8) }
59 if ghas(h, n, "Publishing pipeline" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-hero\n" as *u8) }
60 // the domain-less staged site + its blockers
61 if ghas(h, n, "Community Meet" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-meet-site\n" as *u8) }
62 if ghas(h, n, "domain" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-domain-blocker\n" as *u8) }
63 if ghas(h, n, "approval" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-approval-blocker\n" as *u8) }
64 if ghas(h, n, "Needs:" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-todo-structure\n" as *u8) }
65 if ghas(h, n, "Next:" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-next-action\n" as *u8) }
66 // DERIVED live state + how-to-go-live
67 if ghas(h, n, "pages staged and HELD" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-derived-state\n" as *u8) }
68 if ghas(h, n, "How a site goes live" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-howto\n" as *u8) }
69 if ghas(h, n, "pub_approve" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-approve-mechanism\n" as *u8) }
70 if ghas(h, n, "andelinwest" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-second-site\n" as *u8) }
71 // the board is STAGED HELD for nishifamily.com
72 if ghas(q, qn, "PENDING" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL not-staged\n" as *u8) }
73 if ghas(q, qn, "nishifamily" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL not-for-nishifamily\n" as *u8) }
74 if ghas(q, qn, "pipeline.html" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL no-dest\n" as *u8) }
75 if ghas(q, qn, "outward" as *u8) == 1 { pass=pass+1 } else { fail=fail+1; gp(" FAIL not-held\n" as *u8) }
76
77 gp("PUB-TODOS-GATE pass=" as *u8); gn(pass); gp(" fail=" as *u8); gn(fail)
78 if fail == 0 { gp(" verdict=GREEN (publisher exposes the pipeline/to-dos for nishifamily.com; domain-less sites tracked + staged-held)\n" as *u8); sys_exit(0); return 0 }
79 gp(" verdict=RED\n" as *u8); sys_exit(1); return 1
80}