.PHONY: build release test test-verbose lint format format-check check ci install reinstall restart clean size init start stop status serve logs help
build:
cargo build
release:
cargo build --release
test:
cargo test --all-targets
test-verbose:
cargo test --all-targets -- --nocapture
lint: ## Run clippy (warnings = errors)
cargo clippy --all-targets -- -D warnings
format:
cargo fmt
format-check:
cargo fmt -- --check
check: format-check lint test
@echo "✓ All checks passed."
ci: check release
@echo "✓ CI passed. Release binary ready."
install:
cargo install --path .
reinstall: install
@if githubclaw status 2>/dev/null | grep -q "is running"; then \
githubclaw stop && sleep 2 && githubclaw start; \
echo "✓ Server restarted with latest build."; \
else \
echo "✓ Installed. Server not running (use 'make start' to start)."; \
fi
restart:
githubclaw stop && sleep 2 && githubclaw start
clean:
cargo clean
size: release
@ls -lh target/release/githubclaw
init:
cargo run -- init
start:
cargo run -- start
stop:
cargo run -- stop
status:
cargo run -- status
serve:
cargo run -- serve
logs:
cargo run -- logs --follow
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-16s\033[0m %s\n", $$1, $$2}'