71 lines
1.5 KiB
Bash
Executable File
71 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
UI_DIR="${ROOT_DIR}/ui-tauri-react"
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
check.sh - compatibility-focused project checks
|
|
|
|
Usage:
|
|
./check.sh installers # shell syntax + installer smoke tests
|
|
./check.sh rust # Rust runtime unit tests
|
|
./check.sh frontend # React/TypeScript production build
|
|
./check.sh all # run every check above
|
|
EOF
|
|
}
|
|
|
|
check_installers() {
|
|
echo "==> Checking installer shell syntax"
|
|
bash -n \
|
|
"${ROOT_DIR}/install.sh" \
|
|
"${ROOT_DIR}/install-ui.sh" \
|
|
"${ROOT_DIR}/install-rust-runtime.sh" \
|
|
"${ROOT_DIR}/setup-common.sh" \
|
|
"${ROOT_DIR}/setup-gnome.sh" \
|
|
"${ROOT_DIR}/setup-kde.sh" \
|
|
"${ROOT_DIR}/setup-niri.sh" \
|
|
"${ROOT_DIR}/uninstall.sh" \
|
|
"${ROOT_DIR}/tests/install-stdin-test.sh"
|
|
|
|
echo "==> Running installer smoke tests"
|
|
bash "${ROOT_DIR}/tests/install-stdin-test.sh"
|
|
}
|
|
|
|
check_rust() {
|
|
echo "==> Running Rust runtime unit tests"
|
|
cargo test --manifest-path "${UI_DIR}/src-tauri/Cargo.toml" --lib
|
|
}
|
|
|
|
check_frontend() {
|
|
echo "==> Building and type-checking frontend"
|
|
(cd "${UI_DIR}" && npm run vite:build)
|
|
}
|
|
|
|
case "${1:-all}" in
|
|
installers)
|
|
check_installers
|
|
;;
|
|
rust)
|
|
check_rust
|
|
;;
|
|
frontend)
|
|
check_frontend
|
|
;;
|
|
all)
|
|
check_installers
|
|
check_rust
|
|
check_frontend
|
|
;;
|
|
-h|--help|help)
|
|
usage
|
|
;;
|
|
*)
|
|
echo "ERROR: unknown check target: ${1:-}" >&2
|
|
echo >&2
|
|
usage >&2
|
|
exit 1
|
|
;;
|
|
esac
|