TypeDialog/justfiles/shared.just
2025-12-18 01:18:59 +00:00

59 lines
2.0 KiB
Plaintext

# ╔══════════════════════════════════════════════════════════════════════╗
# ║ SHARED VARIABLES AND HELPERS ║
# ║ TypeDialog workspace ║
# ╚══════════════════════════════════════════════════════════════════════╝
# === WORKSPACE STRUCTURE ===
WORKSPACE_ROOT := justfile_directory()
CRATES := "typedialog-core typedialog typedialog-tui typedialog-web"
CORE_CRATE := "crates/typedialog-core"
# === FEATURE FLAGS ===
FEATURES_CLI := "cli,i18n,templates"
FEATURES_TUI := "tui,i18n,templates"
FEATURES_WEB := "web,i18n,templates"
FEATURES_FULL := "cli,tui,web,i18n,templates"
FEATURES_ALL_BACKENDS := "cli,tui,web"
# === BUILD PROFILES ===
PROFILE_DEBUG := "debug"
PROFILE_RELEASE := "release"
# === CARGO COMMANDS ===
CARGO_CHECK := "cargo check --workspace"
CARGO_BUILD := "cargo build --workspace"
CARGO_TEST := "cargo test --workspace"
CARGO_CLIPPY := "cargo clippy --all-targets --all-features -- -D warnings"
CARGO_FMT := "cargo fmt --all"
CARGO_FMT_CHECK := "cargo fmt --all -- --check"
# === HELPERS ===
# Print section header
header MSG:
@echo "=== {{ MSG }} ==="
# Print success message
success MSG:
@echo "✓ {{ MSG }}"
# Print warning message
warn MSG:
@echo "⚠ {{ MSG }}"
# Print error message
error MSG:
@echo "✗ {{ MSG }}"
# Check cargo is available
_check_cargo:
@command -v cargo >/dev/null || (echo "cargo not found" && exit 1)
# Validate workspace structure
_validate_workspace:
@[ -f "{{ WORKSPACE_ROOT }}/Cargo.toml" ] || (echo "Cargo.toml not found" && exit 1)
@just header "Workspace validation"
@echo "Root: {{ WORKSPACE_ROOT }}"
@echo "Crates: {{ CRATES }}"
@just success "Workspace valid"