code wiki / _hdl_build / nx_deploy_stage_cli_t188.nx

nx_deploy_stage_cli_t188.nx source

↩ module page · 22 lines · 1177 B

1// Existing ELF-stage CLI: source permissions, exact-copy evidence and publication state. 2import "nx_deploy_stage_candidate_t188.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}