nx_workflow.nx source
↩ module page · 41 lines · 1784 B
1// nx_workflow.nx -- CLI half of the consolidated workflow tool (#5 of the 15). READ-ONLY WMS surface:
2// board [prefix] | show <id> [prefix] (prefix default = the canonical knowledge/store/ws-)
3// exit: 0 ok | 3 absent | 4 tombstoned | 2 usage (codes surface in MCP _meta.exit_code)
4// license_tier: ORIGINAL
5import "nx_workflow_lib.nx"
6
7const WFC_USAGE_RC: i64 = 2
8const WFC_RC_ABSENT: i64 = 3
9const WFC_RC_TOMB: i64 = 4
10const WFC_ARG_VERB: i64 = 1
11const WFC_ARG_P1: i64 = 2
12const WFC_ARG_P2: i64 = 3
13const WFC_ARGC_VERB: i64 = 2
14const WFC_ARGC_P1: i64 = 3
15const WFC_ARGC_P2: i64 = 4
16
17func main(argc: i64, argv: *i64) -> i64 {
18 if argc < WFC_ARGC_VERB { wf_puts("usage: nx_workflow board [prefix] | summary [prefix] | show <id> [prefix]\n" as *u8); return WFC_USAGE_RC }
19 let verb: *u8 = argv[WFC_ARG_VERB] as *u8
20 var prefix: *u8 = "knowledge/store/ws-" as *u8
21 if wf_seq(verb, "board" as *u8) == 1 {
22 if argc >= WFC_ARGC_P1 { prefix = argv[WFC_ARG_P1] as *u8 }
23 if wf_board(prefix) < 0 { return WFC_RC_ABSENT }
24 return 0
25 }
26 if wf_seq(verb, "summary" as *u8) == 1 {
27 if argc >= WFC_ARGC_P1 { prefix = argv[WFC_ARG_P1] as *u8 }
28 if wf_summary(prefix) < 0 { return WFC_RC_ABSENT }
29 return 0
30 }
31 if wf_seq(verb, "show" as *u8) == 1 {
32 if argc < WFC_ARGC_P1 { wf_puts("usage: nx_workflow show <id> [prefix]\n" as *u8); return WFC_USAGE_RC }
33 if argc >= WFC_ARGC_P2 { prefix = argv[WFC_ARG_P2] as *u8 }
34 let r: i64 = wf_show(prefix, argv[WFC_ARG_P1] as *u8)
35 if r == 1 { return 0 }
36 if r == 0 { return WFC_RC_TOMB }
37 return WFC_RC_ABSENT
38 }
39 wf_puts("usage: nx_workflow board [prefix] | summary [prefix] | show <id> [prefix]\n" as *u8)
40 return WFC_USAGE_RC
41}