code wiki / _hdl_build / nx_deploy_stage.nx
nx_deploy_stage.nx source
↩ module page · 22 lines · 1166 B
1// Existing ELF-stage CLI: source permissions, exact-copy evidence and publication state.
2import "nx_deploy_stage_lib.nx"
3func main(argc:i64,argv:*i64)->i64{
4 if argc==2{
5 let a:*u8=argv[1] as *u8
6 if ds_len(a)==5&&a[0]==(45 as u8)&&a[1]==(45 as u8)&&a[2]==(107 as u8)&&a[3]==(97 as u8)&&a[4]==(116 as u8){
7 let failed:i64=ds_selftest();if failed==0{ds_w("VERDICT=GREEN\n");return 0};ds_w("VERDICT=RED\n");return 1
8 }
9 }
10 if argc==4{
11 let a:*u8=argv[1] as *u8
12 if ds_len(a)==5&&a[0]==(115 as u8)&&a[1]==(116 as u8)&&a[2]==(97 as u8)&&a[3]==(103 as u8)&&a[4]==(101 as u8){
13 let r:*NxDeployStageResult=sys_mmap_try(__size_of(NxDeployStageResult)) as *NxDeployStageResult
14 if (r as i64)<=0{ds_w("{\"organ\":\"nx_deploy_stage\",\"rc\":-12,\"stage\":\"receipt-allocation\",\"visible\":0,\"verdict\":\"REFUSED\"}\n");return 3}
15 let rc:i64=ds_stage_core(argv[2] as *u8,argv[3] as *u8,r)
16 let emitted:i64=ds_emit_result(1,argv[2] as *u8,argv[3] as *u8,r)
17 sys_munmap_direct(r as *u8,__size_of(NxDeployStageResult))
18 if emitted!=0{return 4};if rc!=0{return 3};return 0
19 }
20 }
21 ds_w("usage: nx_deploy_stage --kat | stage <src-elf> <dst-.new>\n");return 2
22}