Files
shturman/justfile
T
kk0t9 9d0b5b5aa7 feat(devtools): scaffolding (just new-plugin) + just-таргеты
templates/plugin (валидный манифест+locales+README); new-plugin генерит и валидирует;
validate-manifest / plugin-dev-run (каркас, App-Host v3) / sim (плейсхолдер v2). plugins/ — в .gitignore.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Alexander <akotenev2003@gmail.com>
2026-06-24 13:22:16 +03:00

60 lines
2.0 KiB
Makefile

# Штурман — единые 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/<name> и проверить валидатором
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/."