77b21081d798f8375d04cc9915e37590a06df8f7
In sow-tools, extract now behaves like a real sync by default: it overwrites changed extracted files, removes stale extracted files that no longer exist in the built archives, and normalizes extracted resource filenames to lowercase. I also made validation warn on uppercase resource filenames so mixed-case names like I_ELVENCHAIN are surfaced instead of quietly lingering. The extract command output now includes overwritten and removed counts too.
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:
./build-tool.sh
Or run directly with Go:
GOCACHE="$PWD/.cache/go-build" go run ./cmd/nwn-tool --help
Repository Layout
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-moduleusessow-toolkitforbuild-module,extract,validate,compare, andapply-hak-manifestsow-assetsusessow-toolkitforbuild-haksand validation
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 a Linux sow-toolkit release artifact through Gitea Actions as sow-toolkit-linux-amd64.tar.gz. Consumer repos can fetch that binary into their local tools/ directory with their install-tool.sh helper.