26 lines
897 B
Bash
26 lines
897 B
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# Run shellcheck on verification scripts using Docker when shellcheck is not installed.
|
||
|
|
# Usage: bash scripts/verify/run-shellcheck-docker.sh
|
||
|
|
# Prefer: apt install shellcheck && bash scripts/verify/run-shellcheck.sh
|
||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||
|
|
|
||
|
|
if command -v shellcheck &>/dev/null; then
|
||
|
|
echo "Using system shellcheck..."
|
||
|
|
cd "$SCRIPT_DIR" && shellcheck -x *.sh
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
if command -v docker &>/dev/null; then
|
||
|
|
echo "Using Docker image koalaman/shellcheck-alpine..."
|
||
|
|
docker run --rm -v "$SCRIPT_DIR:/mnt:ro" -w /mnt koalaman/shellcheck-alpine:latest shellcheck -x ./*.sh
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "shellcheck not found. Install with: apt install shellcheck"
|
||
|
|
echo "Or use Docker: docker run --rm -v $SCRIPT_DIR:/mnt:ro -w /mnt koalaman/shellcheck-alpine:latest -x *.sh"
|
||
|
|
exit 1
|