Initial commit: local_machine docs and scripts
This commit is contained in:
77
scripts/deployment/gitea/setup-and-push.sh
Executable file
77
scripts/deployment/gitea/setup-and-push.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env bash
|
||||
# Setup local_machine as a git repo and push to Gitea (gitea.hunab.app).
|
||||
# Usage:
|
||||
# 1. Create repo on Gitea (once): UI https://gitea.hunab.app -> New Repository "local_machine"
|
||||
# OR: GITEA_TOKEN=xxx bash scripts/deployment/gitea/setup-and-push.sh --create-only
|
||||
# 2. Push: bash scripts/deployment/gitea/setup-and-push.sh
|
||||
|
||||
set -e
|
||||
GITEA_HOST="${GITEA_HOST:-https://gitea.hunab.app}"
|
||||
GITEA_USER="${GITEA_USER:-hunabgit}"
|
||||
REPO_NAME="local_machine"
|
||||
REMOTE_URL_HTTPS="${GITEA_HOST}/${GITEA_USER}/${REPO_NAME}.git"
|
||||
# SSH port 2223 (see docs/git/GITEA_COMPLETE_GUIDE.md)
|
||||
REMOTE_URL_SSH="ssh://git@gitea.hunab.app:2223/${GITEA_USER}/${REPO_NAME}.git"
|
||||
|
||||
# Must run from repo root (local_machine)
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
|
||||
if [[ ! -f "$ROOT/.gitignore" ]] || [[ ! -d "$ROOT/docs" ]]; then
|
||||
echo "Run from local_machine root. Current: $ROOT"
|
||||
exit 1
|
||||
fi
|
||||
cd "$ROOT"
|
||||
|
||||
# --- Create repo via API (optional) ---
|
||||
if [[ "$1" == "--create-only" ]]; then
|
||||
if [[ -z "$GITEA_TOKEN" ]]; then
|
||||
echo "Create repo manually: $GITEA_HOST -> New Repository -> Name: $REPO_NAME"
|
||||
echo "Or set GITEA_TOKEN and run again with --create-only to create via API."
|
||||
exit 0
|
||||
fi
|
||||
echo "Creating repository $REPO_NAME..."
|
||||
curl -s -X POST "${GITEA_HOST}/api/v1/user/repos" \
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"name\":\"$REPO_NAME\",\"description\":\"Local machine docs and scripts\",\"private\":false,\"auto_init\":false}" \
|
||||
&& echo "" && echo "Repo created. Run without --create-only to push."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# --- Init git if needed ---
|
||||
if [[ ! -d .git ]]; then
|
||||
git init
|
||||
git branch -M main
|
||||
echo "Git initialized (branch main)."
|
||||
fi
|
||||
|
||||
# --- Remote ---
|
||||
if ! git remote get-url origin &>/dev/null; then
|
||||
# Prefer SSH (port 2223) — надёжнее из РФ
|
||||
if command -v ssh &>/dev/null && ssh -o BatchMode=yes -o ConnectTimeout=5 -p 2223 git@gitea.hunab.app 2>/dev/null; then
|
||||
git remote add origin "$REMOTE_URL_SSH"
|
||||
echo "Remote origin set (SSH, port 2223)."
|
||||
else
|
||||
git remote add origin "$REMOTE_URL_HTTPS"
|
||||
echo "Remote origin set (HTTPS). From РФ: use SSH (port 2223) or proxy — see docs/git/GITEA_COMPLETE_GUIDE.md"
|
||||
fi
|
||||
fi
|
||||
|
||||
# --- Commit and push ---
|
||||
git add -A
|
||||
if git diff --cached --quiet; then
|
||||
echo "Nothing to commit."
|
||||
else
|
||||
git commit -m "Initial commit: local_machine docs and scripts"
|
||||
echo "Committed."
|
||||
fi
|
||||
|
||||
echo "Pushing to $GITEA_USER/$REPO_NAME..."
|
||||
if git push -u origin main 2>/dev/null; then
|
||||
echo "Done. Repo: $GITEA_HOST/$GITEA_USER/$REPO_NAME"
|
||||
else
|
||||
echo "Push failed (e.g. timeout from РФ). Try:"
|
||||
echo " SSH: git remote set-url origin $REMOTE_URL_SSH # port 2223"
|
||||
echo " git push -u origin main"
|
||||
echo " Or use bundle method from docs/git/GITEA_COMPLETE_GUIDE.md"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user