148 lines
2.8 KiB
Bash
Executable File
148 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# GitHub Backup Script - Backs up Remix Sniper code to GitHub
|
|
# This backs up code only (not data/configs) for version control
|
|
|
|
set -e
|
|
|
|
REPO_DIR="$HOME/projects/remix-sniper"
|
|
GITHUB_USERNAME="${1:-jakeshore}"
|
|
REPO_NAME="${2:-remix-sniper}"
|
|
|
|
if [[ ! -d "$REPO_DIR" ]]; then
|
|
echo "ERROR: Remix Sniper directory not found: $REPO_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
cd "$REPO_DIR"
|
|
|
|
echo "=========================================="
|
|
echo "GITHUB BACKUP FOR REMIX SNIPER"
|
|
echo "=========================================="
|
|
echo "Repository: https://github.com/$GITHUB_USERNAME/$REPO_NAME"
|
|
echo ""
|
|
|
|
# Initialize git if not already
|
|
if [[ ! -d ".git" ]]; then
|
|
echo "[1/4] Initializing git repository..."
|
|
git init
|
|
git branch -M main
|
|
else
|
|
echo "[1/4] Git repository already initialized"
|
|
fi
|
|
|
|
# Create .gitignore if not exists
|
|
echo "[2/4] Setting up .gitignore..."
|
|
|
|
cat > .gitignore <<'EOF'
|
|
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
.Python
|
|
*.egg-info/
|
|
dist/
|
|
build/
|
|
.venv/
|
|
venv/
|
|
.venv311/
|
|
|
|
# Environment variables
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
|
|
# Database dumps
|
|
*.sql
|
|
*.db
|
|
*.sqlite
|
|
|
|
# Logs
|
|
*.log
|
|
bot.log
|
|
bot_error.log
|
|
daily_scan.log
|
|
stats_update.log
|
|
weekly_report.log
|
|
|
|
# IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# macOS
|
|
.DS_Store
|
|
.AppleDouble
|
|
.LSOverride
|
|
._*
|
|
|
|
# Backup files
|
|
backup-*
|
|
backup-*
|
|
*.bak
|
|
|
|
# Tracking data (JSON files - should be backed up separately)
|
|
.tracking/
|
|
EOF
|
|
|
|
echo " ✓ Created .gitignore"
|
|
|
|
# Add all files
|
|
echo "[3/4] Adding files to git..."
|
|
git add .
|
|
|
|
# Check if there are changes
|
|
if git diff --staged --quiet; then
|
|
echo " ✓ No changes to commit"
|
|
echo ""
|
|
echo "Repository is up to date."
|
|
exit 0
|
|
fi
|
|
|
|
# Commit
|
|
echo ""
|
|
echo "[4/4] Committing changes..."
|
|
COMMIT_MESSAGE="Backup on $(date +%Y-%m-%d at %H:%M)"
|
|
git commit -m "$COMMIT_MESSAGE"
|
|
echo " ✓ Committed changes"
|
|
|
|
# Check if remote exists
|
|
if git remote | grep -q "^origin$"; then
|
|
echo ""
|
|
echo "Remote 'origin' already exists"
|
|
echo " URL: $(git remote get-url origin)"
|
|
else
|
|
echo ""
|
|
echo "Setting up remote repository..."
|
|
echo ""
|
|
echo "To complete GitHub setup:"
|
|
echo " 1. Create a new repository at: https://github.com/new"
|
|
echo " 2. Name it: $REPO_NAME"
|
|
echo " 3. Don't initialize with README, .gitignore, or license"
|
|
echo " 4. Run: git remote add origin https://github.com/$GITHUB_USERNAME/$REPO_NAME.git"
|
|
echo " 5. Run: git push -u origin main"
|
|
echo ""
|
|
exit 0
|
|
fi
|
|
|
|
# Push to GitHub
|
|
echo ""
|
|
echo "Pushing to GitHub..."
|
|
git push -u origin main
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "BACKUP COMPLETE"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "Repository: https://github.com/$GITHUB_USERNAME/$REPO_NAME"
|
|
echo ""
|
|
echo "To push future changes:"
|
|
echo " cd ~/projects/remix-sniper"
|
|
echo " git add ."
|
|
echo " git commit -m 'Your message'"
|
|
echo " git push"
|
|
echo ""
|