msvc-kit 0.2.3

A portable MSVC Build Tools installer and manager for Rust development
# msvc-kit Development Commands
# Usage: vx just <recipe>

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

# ============== Build Commands ==============

# Build debug version
build:
    cargo build

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

# Build for all Windows targets
build-all:
    cargo build --release --target x86_64-pc-windows-msvc
    cargo build --release --target i686-pc-windows-msvc
    cargo build --release --target aarch64-pc-windows-msvc

# ============== Quality Commands ==============

# Run all checks (format, lint, test)
check: fmt-check lint test

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

# Format code
fmt:
    cargo fmt --all

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

# Run clippy with auto-fix
lint-fix:
    cargo clippy --all-targets --all-features --fix --allow-dirty

# ============== Test Commands ==============

# Run all tests
test:
    cargo test --verbose

# Run tests with output
test-nocapture:
    cargo test -- --nocapture

# Run specific test
test-one NAME:
    cargo test {{NAME}} -- --nocapture

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

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

# Build docs without opening
doc-build:
    cargo doc --no-deps

# Start VitePress dev server
docs-dev:
    cd docs && npm run dev

# Build VitePress documentation
docs-build:
    cd docs && npm run build

# Preview VitePress documentation
docs-preview:
    cd docs && npm run preview

# Install docs dependencies
docs-install:
    cd docs && npm install

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

# Run the CLI with arguments
run *ARGS:
    cargo run -- {{ARGS}}

# Run release version with arguments
run-release *ARGS:
    cargo run --release -- {{ARGS}}

# Watch for changes and rebuild
watch:
    cargo watch -x build

# Watch for changes and run tests
watch-test:
    cargo watch -x test

# ============== Release ==============

# Prepare release (run all checks)
release-check: fmt-check lint test
    cargo build --release
    @echo "✅ All checks passed! Ready for release."

# Publish to crates.io (dry run)
publish-dry:
    cargo publish --dry-run

# Publish to crates.io
publish:
    cargo publish

# ============== Cleanup ==============

# Clean build artifacts
clean:
    cargo clean

# Clean and rebuild
rebuild: clean build

# ============== Utilities ==============

# Show project info
info:
    @echo "Project: msvc-kit"
    @echo "Version: $(cargo pkgid | cut -d# -f2)"
    @cargo --version
    @rustc --version

# Update dependencies
update:
    cargo update

# Check for outdated dependencies
outdated:
    cargo outdated

# Security audit
audit:
    cargo audit

# Generate dependency tree
tree:
    cargo tree

# ============== CI Simulation ==============

# Run full CI pipeline locally
ci: fmt-check lint test build-release
    @echo "✅ CI pipeline completed successfully!"