Make the toolkit usable BY HAND without the `larry tools <name>` prefix. - bin/ of thin wrappers (tbn/tbp/tbh/tbpr/where/paths/route_test + a full-name passthrough per operator tool). Installer symlinks them into LARRY_BIN_DIR so `tbn adt` runs directly. Each resolves lib/ via bin/_nc_common.sh (LARRY_LIB_DIR -> ../lib -> $LARRY_HOME/lib) and execs the matching tool. - -h/--help on every wrapper. - bin/nc-completion.bash: dynamic bash completion, 3 levels (command / SITE / THREAD) enumerated LIVE from the NetConfig tree under $HCIROOT via the same lib/nc-parse.sh the tools use; cached per (HCIROOT, newest-NetConfig-mtime). Installer appends a guarded source line to the user's bash rc. - fixtures/integrator: durable 3-site demo (epic->ancout->codamx) with cross- site fan-out + fan-in and a multi-route inbound. RESOLVES the v0.9.3 fixture conflict: cross-site destination blocks are XS_*-prefixed so they never collide with a local protocol name (a collision makes nc-paths _xsite_down_targets suppress the cross-site hop, lib/nc-paths.sh:378). - DEFERRED: fetch-token.sh broker wiring (broker contract still finalizing). VERSION+LARRY_VERSION -> 0.9.4; MANIFEST regenerated (--check clean); bash -n clean; verified live on .135 (short commands off PATH + all 3 completion levels). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
88 lines
2.2 KiB
Plaintext
88 lines
2.2 KiB
Plaintext
# NetConfig — fixture site `epic` (entry / fan-out site).
|
|
#
|
|
# DURABLE CHECKED-IN FIXTURE for nc-paths cross-site walking + route fan-out.
|
|
# Synthetic, PHI-free, ~deliberately small. Grammar matches lib/nc-parse.sh
|
|
# (protocol/process/destination top-level blocks; { PROTOCOL { PORT/ISSERVER } };
|
|
# DATAXLATE { ROUTE { ROUTE_DETAILS { DEST <name> } } }).
|
|
#
|
|
# CONFLICT RESOLVED (the v0.9.3 fixture-design bug): a destination BLOCK must
|
|
# never share a NAME with a LOCAL protocol in the SAME site. nc-paths.sh
|
|
# _xsite_down_targets (lib/nc-paths.sh:378) skips any DEST whose name is also a
|
|
# local protocol — so a colliding dest-block name SUPPRESSES the cross-site hop.
|
|
# Here every cross-site destination block is prefixed `XS_` (XS = cross-site)
|
|
# and no protocol uses that prefix. Local intra-site DEST targets are bare
|
|
# protocol names; cross-site DEST targets are the `XS_*` block names.
|
|
#
|
|
# Topology:
|
|
# IB_ADT_epic (server :7001, multi-route inbound)
|
|
# --> MUX_ADT_ancout (intra) ==> ancout/IB_ADT_muxS (cross via XS_to_ancout)
|
|
# --> MUX_ADT_codamx (intra) ==> codamx/IB_ADT_cmx (cross via XS_to_codamx)
|
|
|
|
process recv_epic {
|
|
}
|
|
process route_epic {
|
|
}
|
|
|
|
protocol IB_ADT_epic {
|
|
{ PROCESSNAME recv_epic }
|
|
{ PROTOCOL {
|
|
{ TYPE tcpip }
|
|
{ ISSERVER 1 }
|
|
{ PORT 7001 }
|
|
} }
|
|
{ DATAXLATE {
|
|
{ ROUTE {
|
|
{ ROUTE_DETAILS {
|
|
{ DEST MUX_ADT_ancout }
|
|
} }
|
|
{ ROUTE_DETAILS {
|
|
{ DEST MUX_ADT_codamx }
|
|
} }
|
|
} }
|
|
} }
|
|
}
|
|
|
|
protocol MUX_ADT_ancout {
|
|
{ PROCESSNAME route_epic }
|
|
{ PROTOCOL {
|
|
{ TYPE tcpip }
|
|
{ ISSERVER 0 }
|
|
{ PORT 62043 }
|
|
} }
|
|
{ DATAXLATE {
|
|
{ ROUTE {
|
|
{ ROUTE_DETAILS {
|
|
{ DEST XS_to_ancout }
|
|
} }
|
|
} }
|
|
} }
|
|
}
|
|
|
|
protocol MUX_ADT_codamx {
|
|
{ PROCESSNAME route_epic }
|
|
{ PROTOCOL {
|
|
{ TYPE tcpip }
|
|
{ ISSERVER 0 }
|
|
{ PORT 62044 }
|
|
} }
|
|
{ DATAXLATE {
|
|
{ ROUTE {
|
|
{ ROUTE_DETAILS {
|
|
{ DEST XS_to_codamx }
|
|
} }
|
|
} }
|
|
} }
|
|
}
|
|
|
|
destination XS_to_ancout {
|
|
{ SITE ancout }
|
|
{ THREAD IB_ADT_muxS }
|
|
{ PORT 62043 }
|
|
}
|
|
|
|
destination XS_to_codamx {
|
|
{ SITE codamx }
|
|
{ THREAD IB_ADT_cmx }
|
|
{ PORT 62044 }
|
|
}
|