32 lines
586 B
Bash
Executable File
32 lines
586 B
Bash
Executable File
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
cd "$(dirname "$0")"
|
|
output="./tools/sow-toolkit"
|
|
|
|
tool_sources_are_newer() {
|
|
if [ ! -x "$output" ]; then
|
|
return 0
|
|
fi
|
|
|
|
for path in go.mod go.sum cmd internal; do
|
|
if [ ! -e "$path" ]; then
|
|
continue
|
|
fi
|
|
if [ -n "$(find "$path" -type f -newer "$output" -print -quit)" ]; then
|
|
return 0
|
|
fi
|
|
done
|
|
|
|
return 1
|
|
}
|
|
|
|
mkdir -p tools .cache/go-build
|
|
if ! tool_sources_are_newer; then
|
|
echo "sow-toolkit is up to date."
|
|
exit 0
|
|
fi
|
|
|
|
echo "Building sow-toolkit..."
|
|
GOCACHE="${PWD}/.cache/go-build" go build -o "$output" ./cmd/nwn-tool
|