#!/bin/bash ## Build/ Test/ Clippy all supported feature permutations set -eu mode=${1:-help} wasm_target="--chrome --headless" extended=${2:-false} features_base=( #cam,denm,uart spat,gnss,screen spat,gnss,screen,cam_tx ) features_more=( spat,gnss,screen,cam,denm spat,gnss,screen,cam_tx,cam,denm ) features_test=( spat,cam,denm ) runBuild () { for feat in "${features[@]}"; do echo "cargo build for $feat ..." cargo build --release --no-default-features -F esp,$feat done } runTest () { for feat in "${features_test[@]}"; do echo "cargo test for $feat ..." cargo test --target host-tuple --bin test --no-default-features -F std,$feat done } runClippy () { for feat in "${features[@]}"; do echo "clippy for $feat ..." cargo clippy --no-default-features -F esp,$feat -- -Wclippy::pedantic done } if [ $extended == "--more" ]; then echo "running with extended feature list" features=( "${features_base[@]}" "${features_more[@]}" ) else echo "running standard feature list" features=( "${features_base[@]}" ) fi case $mode in build) runBuild ;; clippy) runClippy ;; test) runTest ;; all) runBuild runClippy runTest ;; *) echo "Usage: $0 [build | clippy | test | all] [--more]" esac