code wiki / _hdl_build / nx_ims_batch1_repush.nx

nx_ims_batch1_repush.nx source

↩ module page · 60 lines · 3212 B

1// nx_ims_batch1_repush.nx -- re-land the two pages whose live push did not confirm on the 2// first batch run (formats_uxf, media_studio: push_rc=-1, served stale 1864B). Same guarded+ 3// versioned vpub path; additive (a new rollback version is retained each time). Isolated so a 4// transient NAS-push race on a rapid 5-page run can be retried without re-touching the others. 5// license_tier: ORIGINAL 6import "nx_wiki_versioned_publish.nx" 7import "nx_syscalls.nx" 8 9func p_w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 10func p_num(v: i64) -> i64 { 11 let bb: *u8 = sys_mmap(28); var m: i64 = v; if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m } 12 let t: *u8 = sys_mmap(28); var k: i64 = 0 13 if m == 0 { t[0] = 48 as u8; k = 1 } 14 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 15 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } 16 sys_write(1, bb, k); return 0 17} 18 19const PB_EPOCH: i64 = 1781850001 20 21func pb_publish(slug: *u8, path: *u8, cs_ptr: *i64, cs_len: *i64, ncorpus: i64) -> i64 { 22 let res: *PubResult = sys_mmap(64) as *PubResult 23 let vout: *i64 = sys_mmap(16) as *i64 24 let rc: i64 = vpub(slug, path, cs_ptr, cs_len, ncorpus, PB_EPOCH, 1, res, vout) 25 p_w(" vpub("); p_w(slug); p_w(") rc="); p_w(vp_status_name(rc)) 26 p_w(" version#="); p_num(vout[0]) 27 p_w(" | push="); p_w(pub_status_name(res.status)) 28 p_w(" push_invoked="); p_num(res.push_invoked) 29 p_w(" push_rc="); p_num(res.push_rc) 30 p_w(" bytes="); p_num(res.bytes); p_w("\n") 31 if rc == VP_OK { if res.push_invoked == 1 { if res.push_rc == 0 { return 0 } } } 32 return 0 - 1 33} 34 35func main() -> i64 { 36 let cs_ptr: *i64 = sys_mmap(24 * 8) as *i64 37 let cs_len: *i64 = sys_mmap(24 * 8) as *i64 38 cs_ptr[0] = "start" as *u8 as i64; cs_len[0] = 5 39 cs_ptr[1] = "charter" as *u8 as i64; cs_len[1] = 7 40 cs_ptr[2] = "nist_stem" as *u8 as i64; cs_len[2] = 9 41 cs_ptr[3] = "roadmap" as *u8 as i64; cs_len[3] = 7 42 cs_ptr[4] = "board" as *u8 as i64; cs_len[4] = 5 43 cs_ptr[5] = "devlog" as *u8 as i64; cs_len[5] = 6 44 cs_ptr[6] = "econsim" as *u8 as i64; cs_len[6] = 7 45 cs_ptr[7] = "products" as *u8 as i64; cs_len[7] = 8 46 cs_ptr[8] = "genesis_genealogy" as *u8 as i64; cs_len[8] = 17 47 cs_ptr[9] = "access_wall" as *u8 as i64; cs_len[9] = 11 48 cs_ptr[10] = "formats_uxf" as *u8 as i64; cs_len[10] = 11 49 cs_ptr[11] = "media_studio" as *u8 as i64; cs_len[11] = 12 50 cs_ptr[12] = "search" as *u8 as i64; cs_len[12] = 6 51 let ncorpus: i64 = 13 52 53 p_w("=== IMS BATCH #1 RE-PUSH: formats_uxf + media_studio -> LIVE (confirm push_rc==0) ===\n") 54 var ok: i64 = 0 55 if pb_publish("formats_uxf" as *u8, "web_assets/formats_uxf.html" as *u8, cs_ptr, cs_len, ncorpus) == 0 { ok = ok + 1 } 56 if pb_publish("media_studio" as *u8, "web_assets/media_studio.html" as *u8, cs_ptr, cs_len, ncorpus) == 0 { ok = ok + 1 } 57 p_w("=== re-pushed "); p_num(ok); p_w("/2 confirmed (push_rc==0) ===\n") 58 if ok == 2 { sys_exit(0); return 0 } 59 sys_exit(1); return 1 60}