Files
sow-tools/README.md
T

70 lines
2.0 KiB
Markdown

# sow-tools
Shared NWN build tooling for Shadows Over Westgate.
This repository owns the Go-based `sow-toolkit` binary used by the separate module and assets repositories.
## Build
Build the development binary into `tools/sow-toolkit`:
```bash
./build-tool.sh
```
Or run directly with Go:
```bash
GOCACHE="$PWD/.cache/go-build" go run ./cmd/nwn-tool --help
```
## Repository Layout
```text
cmd/nwn-tool/ CLI entrypoint
internal/app/ command wiring and console UX
internal/erf/ ERF/MOD/HAK reading and writing
internal/gff/ canonical GFF JSON and binary conversion
internal/pipeline/ build, extract, compare, and manifest workflows
internal/project/ config loading and repo scanning
internal/validator/validation and diagnostics
tools/ built development binary output
```
## Intended Consumers
- `sow-module` uses `sow-toolkit` for `build-module`, `extract`, `validate`, `compare`, and `apply-hak-manifest`
- `sow-assets` uses `sow-toolkit` for `build-haks` and validation
- `sow-module` now also uses `sow-toolkit` for the early topdata bridge:
- `validate-topdata`
- `build-topdata`
- `compare-topdata`
During development, sibling repositories can point at `../sow-tools/tools/sow-toolkit`. For pinned releases, each consumer repo can instead carry its own copy at `tools/sow-toolkit`.
## Release Automation
This repo publishes:
- `sow-toolkit-linux-amd64.tar.gz`
- `sow-toolkit-windows-amd64.exe`
Consumer repos can fetch those binaries into their local `tools/` directory with:
- `install-tool.sh` on Linux/macOS
- `install-tool.ps1` on Windows
## TopData Migration
The topdata rebuild is now staged in this repo.
Current state:
- the new command surface exists in `sow-toolkit`
- `sow-module/topdata/` is the new long-term source home
- `build-topdata` currently bridges through the Python builder in `sow-dev` for authoritative output generation
- native Go merge/build parity is still a follow-up milestone
See [TOPDATA_HANDOFF_2026-04-02.md](./TOPDATA_HANDOFF_2026-04-02.md) for the current handoff and migration notes.