Files
Nexus/deploy/check_shell_eol.sh
T

33 lines
839 B
Bash
Raw Normal View History

#!/bin/bash
# Fail if tracked shell scripts contain CR (CRLF) — breaks bash on Ubuntu.
# Usage: bash deploy/check_shell_eol.sh
# Run from repo root (or set NEXUS_DEPLOY_DIR).
set -euo pipefail
_SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
_REPO_ROOT="$(cd "${_SCRIPT_DIR}/.." && pwd)"
ROOT="${NEXUS_DEPLOY_DIR:-${_REPO_ROOT}}"
cd "${ROOT}"
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
echo "check_shell_eol: not a git repo at ${ROOT}" >&2
exit 1
fi
BAD=0
while IFS= read -r -d '' f; do
if grep -q $'\r' "${f}" 2>/dev/null; then
echo "CRLF/CR detected: ${f}" >&2
BAD=1
fi
done < <(git ls-files -z '*.sh')
if [ "${BAD}" -ne 0 ]; then
echo "Fix: git add --renormalize '*.sh' or run dos2unix on listed files." >&2
exit 1
fi
echo "check_shell_eol: OK (all tracked *.sh are LF-only)"