tauri/.scripts/cargo-check.ps1

60 lines
1.4 KiB
PowerShell
Executable File

#!/usr/bin/env pwsh
# note: you can pass in the cargo sub-commands used to check manually.
# allowed commands: check, clippy, fmt, test
# default: clippy, fmt, test
# set the script arguments if none are found
if(-Not $args) {
$args=@("clippy","fmt","test")
}
# exit the script early if the last command returned an error
function check_error {
if($LASTEXITCODE -ne 0 ) {
Exit $LASTEXITCODE
}
}
# 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
function mutex {
$command, $_args = $args
foreach ($feature in @("no-server","embedded-server")) {
Write-Output "[$command][$feature] tauri"
cargo $command --manifest-path tauri/Cargo.toml --all-targets --features "$feature,cli,all-api" $_args
check_error
}
Write-Output "[$command] other crates"
cargo $command --workspace --exclude tauri --all-targets --all-features $_args
check_error
}
foreach ($command in $args) {
Switch ($command) {
"check" {
mutex check
break
}
"test" {
mutex test
break
}
"clippy" {
mutex clippy "--" -D warnings
break
}
"fmt" {
Write-Output "[$command] checking formatting"
cargo fmt "--" --check
check_error
}
default {
Write-Output "[cargo-check.ps1] Unknown cargo sub-command: $command"
Exit 1
}
}
}