converge-tool 0.2.3

Development tools for Converge including Gherkin spec validation
Documentation
# Converge Tool - Development Commands
# Run `just --list` to see all available commands

# Default: show available commands
default:
    @just --list

# =============================================================================
# Doctor - Environment Health Check
# =============================================================================

# Check component health
doctor:
    #!/usr/bin/env bash
    echo "  Checking Rust environment..."
    if cargo --version >/dev/null 2>&1; then
        echo "  ✓ cargo available"
    else
        echo "  ✗ cargo not found"
    fi
    if [ -f "Cargo.toml" ]; then
        echo "  ✓ Cargo.toml present"
    fi

# =============================================================================
# Build & Install
# =============================================================================

# Build the cz binary
build:
    cargo build --bin cz

# Build release version
build-release:
    cargo build --bin cz --release

# Install cz to ~/.cargo/bin
install:
    cargo install --path . --bin cz

# Uninstall cz
uninstall:
    cargo uninstall cz 2>/dev/null || echo "cz not installed"

# =============================================================================
# Quality Checks
# =============================================================================

# Format code
fmt:
    cargo fmt

# Check formatting
fmt-check:
    cargo fmt -- --check

# Run clippy
lint:
    cargo clippy --all-targets -- -D warnings

# Alias for lint
clippy: lint

# Run tests
test:
    cargo test

# Run all checks
check: fmt-check lint test

# Run CI checks
ci: fmt-check lint test build

# =============================================================================
# Development
# =============================================================================

# Run cz with arguments
run *ARGS:
    cargo run --bin cz -- {{ARGS}}

# Watch and rebuild on changes
watch:
    cargo watch -x "build --bin cz"

# Clean build artifacts
clean:
    cargo clean

# =============================================================================
# Documentation
# =============================================================================

# Build documentation
doc:
    cargo doc --no-deps

# Open documentation
doc-open:
    cargo doc --no-deps --open