79 lines
2.1 KiB
Bash
79 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Синхронизация main на kalinamall / home / github: свой README и только свои readme-шаблоны.
|
|
set -Eeuo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
CHECK_SECRETS="${CHECK_SECRETS:-$HOME/Documents/Cursor/Projects/Answer.and.other.shit/guides/init.new.comps/scripts/check-no-secrets.sh}"
|
|
CHECK_GITHUB="${CHECK_GITHUB:-$ROOT/scripts/check-github-clean.sh}"
|
|
|
|
sync_remote() {
|
|
local remote=$1
|
|
local readme_template=$2
|
|
local branch="sync-${remote}"
|
|
shift 2
|
|
local -a remove=( "$@" )
|
|
|
|
git fetch "$remote"
|
|
git checkout -B "$branch" "${remote}/main"
|
|
git checkout main -- .
|
|
cp "$readme_template" README.md
|
|
|
|
for f in "${remove[@]}"; do
|
|
if [[ -e $f ]]; then
|
|
rm -rf "$f"
|
|
fi
|
|
done
|
|
|
|
rm -rf .cursor .cursorignore
|
|
|
|
git add -u .
|
|
git add README.md
|
|
if git diff --cached --quiet; then
|
|
echo "[push-remotes] $remote: без изменений"
|
|
else
|
|
git commit -m "chore: sync $remote (README и файлы зеркала)"
|
|
fi
|
|
|
|
if [[ $remote == github ]]; then
|
|
if [[ -f $CHECK_GITHUB ]]; then
|
|
bash "$CHECK_GITHUB"
|
|
fi
|
|
if [[ -f $CHECK_SECRETS ]]; then
|
|
bash "$CHECK_SECRETS" github
|
|
fi
|
|
fi
|
|
|
|
git push "$remote" "${branch}:main"
|
|
git checkout main
|
|
git branch -D "$branch"
|
|
}
|
|
|
|
echo "[push-remotes] kalinamall"
|
|
sync_remote kalinamall "$ROOT/scripts/readme/kalinamall.md" \
|
|
scripts/readme/github.md \
|
|
scripts/readme/home.md
|
|
|
|
echo "[push-remotes] home"
|
|
sync_remote home "$ROOT/scripts/readme/home.md" \
|
|
scripts/readme/github.md \
|
|
scripts/readme/kalinamall.md \
|
|
scripts/push-remotes.sh \
|
|
scripts/check-github-clean.sh
|
|
|
|
echo "[push-remotes] github"
|
|
sync_remote github "$ROOT/scripts/readme/github.md" \
|
|
scripts/readme/kalinamall.md \
|
|
scripts/readme/home.md \
|
|
scripts/push-remotes.sh \
|
|
scripts/check-github-clean.sh
|
|
|
|
cp "$ROOT/scripts/readme/kalinamall.md" README.md
|
|
git add README.md
|
|
if ! git diff --cached --quiet; then
|
|
git commit -m "docs: README kalinamall (рабочая копия main)"
|
|
fi
|
|
|
|
echo "[push-remotes] готово."
|