f912a4889a
Каждое зеркало получает только свой README и шаблон; GitHub без internal URL в дереве.
53 lines
1.1 KiB
Bash
Executable File
53 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Перед push на github: нет internal URL и файлов других зеркал.
|
|
set -Eeuo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
PATTERNS=(
|
|
'git\.kalinamall\.ru'
|
|
'git\.papatramp\.ru'
|
|
'papatramp\.lan'
|
|
'192\.168\.'
|
|
'kalinamall/main'
|
|
'push.*kalinamall'
|
|
)
|
|
|
|
scan_files() {
|
|
local hits=0
|
|
local files
|
|
files=$(git ls-files)
|
|
while read -r f; do
|
|
[[ -z $f ]] && continue
|
|
[[ -f $f ]] || continue
|
|
case $f in
|
|
scripts/check-github-clean.sh | scripts/push-remotes.sh) continue ;;
|
|
esac
|
|
for pat in "${PATTERNS[@]}"; do
|
|
if grep -qE "$pat" "$f" 2>/dev/null; then
|
|
echo " INTERNAL? $f (pattern: $pat)"
|
|
hits=$((hits + 1))
|
|
fi
|
|
done
|
|
done <<<"$files"
|
|
return $hits
|
|
}
|
|
|
|
echo "[check-github-clean] сканирование tracked-файлов"
|
|
n=0
|
|
scan_files || n=$?
|
|
if [[ $n -gt 0 ]]; then
|
|
echo "[check-github-clean] найдено: $n"
|
|
exit 1
|
|
fi
|
|
|
|
for f in scripts/readme/kalinamall.md scripts/readme/home.md; do
|
|
if [[ -f $f ]]; then
|
|
echo " FORBIDDEN FILE: $f"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo "[check-github-clean] OK"
|