add Makefile for build automation and development
This commit is contained in:
98
Makefile
Normal file
98
Makefile
Normal file
@@ -0,0 +1,98 @@
|
||||
.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"
|
||||
Reference in New Issue
Block a user