2020-07-21 20:35:22 +03:00
|
|
|
#!/usr/bin/env sh
|
2020-07-24 17:19:02 +03:00
|
|
|
# note: you can pass in the cargo sub-commands used to check manually.
|
|
|
|
# allowed commands: check, clippy, fmt, test
|
|
|
|
# default: clippy, fmt, test
|
|
|
|
|
|
|
|
# exit the script early if any of the commands return an error
|
2020-07-21 20:35:22 +03:00
|
|
|
set -e
|
|
|
|
|
2020-07-24 17:19:02 +03:00
|
|
|
# set the script arguments if none are found
|
|
|
|
if [ -z "$*" ]; then
|
|
|
|
set -- "clippy" "fmt" "test"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# run n+1 times, where n is the amount of mutually exclusive features.
|
|
|
|
# the extra run is for all the crates without mutually exclusive features.
|
|
|
|
# as many features as possible are enabled at for each command
|
|
|
|
mutex() {
|
|
|
|
command=$1
|
|
|
|
shift 1
|
2020-07-21 20:35:22 +03:00
|
|
|
|
2020-07-24 17:19:02 +03:00
|
|
|
for feature in "no-server" "embedded-server"; do
|
|
|
|
echo "[$command][$feature] tauri"
|
|
|
|
cargo "$command" --manifest-path tauri/Cargo.toml --all-targets --features "$feature,cli,all-api" "$@"
|
2020-07-21 20:35:22 +03:00
|
|
|
done
|
|
|
|
|
2020-07-24 17:19:02 +03:00
|
|
|
echo "[$command] other crates"
|
|
|
|
cargo "$command" --workspace --exclude tauri --all-targets --all-features "$@"
|
|
|
|
}
|
|
|
|
|
|
|
|
for command in "$@"; do
|
|
|
|
case "$command" in
|
|
|
|
check | test)
|
|
|
|
mutex "$command"
|
|
|
|
;;
|
|
|
|
clippy)
|
|
|
|
mutex clippy -- -D warnings
|
|
|
|
;;
|
|
|
|
fmt)
|
|
|
|
echo "[$command] checking formatting"
|
|
|
|
cargo fmt -- --check
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "[cargo-check.sh] Unknown cargo sub-command: $command"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
2020-07-21 20:35:22 +03:00
|
|
|
done
|