diff --git a/setup_github_sync.sh b/setup_github_sync.sh new file mode 100644 index 0000000..83cd391 --- /dev/null +++ b/setup_github_sync.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +set -euo pipefail + +PROJECT_DIR="/opt/virtuality" +DEFAULT_BRANCH="main" + +if [[ "$EUID" -ne 0 ]]; then + echo "Ошибка: запусти от root: sudo bash setup_github_sync.sh" + exit 1 +fi + +apt update +apt install -y git openssh-client + +if [[ ! -d "$PROJECT_DIR" ]]; then + echo "Ошибка: папка проекта не найдена: $PROJECT_DIR" + echo "Сначала запусти install_virtuality_node.sh" + exit 1 +fi + +cd "$PROJECT_DIR" + +read -rp "GitHub repo URL [git@github.com:viktor138irk/virtuality.git]: " GITHUB_REPO +GITHUB_REPO="${GITHUB_REPO:-git@github.com:viktor138irk/virtuality.git}" + +read -rp "Git author name [Virtuality Node]: " GIT_NAME +GIT_NAME="${GIT_NAME:-Virtuality Node}" + +read -rp "Git author email [virtuality@local]: " GIT_EMAIL +GIT_EMAIL="${GIT_EMAIL:-virtuality@local}" + +git config --global user.name "$GIT_NAME" +git config --global user.email "$GIT_EMAIL" + +cat > "$PROJECT_DIR/git_sync.sh" <<'EOF' +#!/usr/bin/env bash +set -euo pipefail + +PROJECT_DIR="/opt/virtuality" +cd "$PROJECT_DIR" + +MESSAGE="${1:-Auto sync $(date '+%Y-%m-%d %H:%M:%S')}" + +git add . +git commit -m "$MESSAGE" || { + echo "Нет изменений для commit." + exit 0 +} + +git push origin main +EOF + +chmod +x "$PROJECT_DIR/git_sync.sh" + +if [[ ! -d "$PROJECT_DIR/.git" ]]; then + git init +fi + +git branch -M "$DEFAULT_BRANCH" + +if git remote get-url origin >/dev/null 2>&1; then + git remote set-url origin "$GITHUB_REPO" +else + git remote add origin "$GITHUB_REPO" +fi + +git add . +git commit -m "Initial Virtuality node base" || true +git push -u origin "$DEFAULT_BRANCH" + +echo "GitHub sync готов." +echo "Ручная синхронизация: sudo /opt/virtuality/git_sync.sh \"Описание изменений\""