Chase is command runner and potentially a (forward) build system. Chase primarily reads build specifications from a chasefile placed in your outer directory consisting of one or more tasks/chases.
Chase uses fsatrace for cross-platform file access tracing. We also support an experimental flag that attmepts tracing with ebpf on Linux and Windows.
# Clone with submodules
git clone --recurse-submodules https://github.com/dibrinsofor/chase
cd chase
# Build fsatrace (required for tracing)
cd fsatrace && make && cd ..
# Build chase
go build .Platform Notes:
| Platform | Tracing Mechanism | Notes |
|---|---|---|
| Linux | LD_PRELOAD | Works with dynamically linked binaries |
| macOS | DYLD_INSERT_LIBRARIES | Requires SIP disabled on 10.11+ |
| Windows | DLL injection | Needs both 32-bit and 64-bit DLLs |
Experimental eBPF (Linux only):
# Build with eBPF support for more detailed subprocess tracing
go build -tags experimental_ebpf .see sample chasefile
chase -l
build summary: "build main"
tests summary: "run all tests"
hello --chase #runs the build task
chase tests # runs only the test dashchase expects the custom shell declaration at the top of the file. if it does not exist, commands will be run with any reasonable sh (Git bash if on windows)
see ./idea/readme.md for more
- Improve UI