# Штурман — единые dev-команды (расширяется по планам реализации). set shell := ["bash", "-uc"] # список целей default: @just --list # собрать весь воркспейс build: cargo build --workspace # тесты (unit + integration) test: cargo test --workspace # линт: формат + clippy (warnings = ошибки) lint: cargo fmt --all --check cargo clippy --workspace --all-targets -- -D warnings # лицензии + advisories deny: cargo deny check # интеграционные тесты на session-шине (нужен dbus: brew install dbus / в Lima) test-integration: dbus-run-session -- cargo test --workspace -- --ignored # полный локальный гейт ci: lint test deny # --- плагины (F02/F03) --- # валидировать манифест плагина validate-manifest path: cargo run -q -p shturman-manifest-validator -- {{path}} # сгенерировать каркас плагина в plugins/ и проверить валидатором new-plugin name: #!/usr/bin/env bash set -euo pipefail dest="plugins/{{name}}" [ -e "$dest" ] && { echo "уже существует: $dest"; exit 1; } mkdir -p "$dest" cp -R templates/plugin/. "$dest/" for f in $(find "$dest" -type f); do tmp=$(mktemp); sed "s/__NAME__/{{name}}/g" "$f" > "$tmp" && mv "$tmp" "$f" done echo "создан плагин: $dest" cargo run -q -p shturman-manifest-validator -- "$dest/manifest.yaml" # dev-запуск плагина (каркас; полноценно — с App-Host, v3) plugin-dev-run path: @echo "plugin-dev-run {{path}}: нужен App-Host (приходит в v3). Пока — валидация манифеста:" cargo run -q -p shturman-manifest-validator -- {{path}}/manifest.yaml # Vehicle Simulator (плейсхолдер; домен E, v2) sim: @echo "Vehicle Simulator — v2 (домен E): vcan + ELM327-emu; каркас в sim/."