Files
ghost/Makefile
2025-11-08 12:22:43 +02:00

98 lines
2.0 KiB
Makefile

.PHONY: build test clean install dev-setup check fmt clippy doc
# Default target
all: build
# Build the project
build:
cargo build --release
# Build for development
dev:
cargo build
# Run tests
test:
cargo test
# Clean build artifacts
clean:
cargo clean
# Install locally
install: build
cargo install --path ghost-cli
# Development setup
dev-setup:
rustup component add clippy rustfmt
cargo install cargo-audit
# Check code quality
check:
cargo check
cargo clippy -- -D warnings
cargo audit
# Format code
fmt:
cargo fmt
# Run clippy
clippy:
cargo clippy -- -D warnings
# Generate documentation
doc:
cargo doc --open
# Run CLI with default args
run:
cargo run --bin ghost-cli
# Run CLI with verbose output
run-verbose:
cargo run --bin ghost-cli -- --verbose
# Run CLI with JSON output
run-json:
cargo run --bin ghost-cli -- --format json
# Run CLI with CSV output
run-csv:
cargo run --bin ghost-cli -- --format csv
# Run TUI
run-tui:
cargo run --bin ghost-tui
# Watch mode for development
watch:
cargo watch -x check -x test -x "run --bin ghost-cli"
# Profile build size
size: build
@echo "Binary sizes:"
@du -h target/release/ghost-cli target/release/ghost-tui 2>/dev/null || true
# Help
help:
@echo "Available targets:"
@echo " build - Build release version"
@echo " dev - Build development version"
@echo " test - Run tests"
@echo " clean - Clean build artifacts"
@echo " install - Install CLI locally"
@echo " dev-setup - Setup development environment"
@echo " check - Run code quality checks"
@echo " fmt - Format code"
@echo " clippy - Run clippy linter"
@echo " doc - Generate documentation"
@echo " run - Run CLI with default args"
@echo " run-verbose- Run CLI with verbose output"
@echo " run-json - Run CLI with JSON output"
@echo " run-csv - Run CLI with CSV output"
@echo " run-tui - Run TUI interface"
@echo " watch - Watch mode for development"
@echo " size - Show binary sizes"
@echo " help - Show this help"