40 lines
772 B
Bash
Executable File
40 lines
772 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")"
|
|
STACKS_DIR="${STACKS_DIR:-$SCRIPT_DIR}"
|
|
docker_args=(--rm -v "$STACKS_DIR:/app")
|
|
dclint_args=()
|
|
|
|
if [[ -t 1 ]]; then
|
|
docker_args+=(-t)
|
|
fi
|
|
|
|
# Scan immediate stack directories without recursing into their subdirectories.
|
|
shopt -s nullglob
|
|
for stack_dir in "$STACKS_DIR"/*/; do
|
|
stack_dir="${stack_dir%/}"
|
|
dclint_args+=("/app/${stack_dir##*/}")
|
|
done
|
|
|
|
if ((${#dclint_args[@]} == 0)); then
|
|
printf 'No stack directories found in %s\n' "$STACKS_DIR" >&2
|
|
exit 1
|
|
fi
|
|
|
|
case "${1:-}" in
|
|
"")
|
|
;;
|
|
--fix)
|
|
dclint_args+=(--fix)
|
|
;;
|
|
*)
|
|
printf 'Usage: %s [--fix]\n' "${0##*/}" >&2
|
|
exit 2
|
|
;;
|
|
esac
|
|
|
|
exec docker run "${docker_args[@]}" \
|
|
zavoloklom/dclint \
|
|
"${dclint_args[@]}"
|