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}