Files
smartsoltech_site/bin/setup-backup.sh
Andrey K. Choi 8f1e0459fc 🔧 Restructure scripts and add CLI tool
 New features:
- Add CLI tool for container command execution
- Reorganize all scripts into bin/ directory
- Create convenient wrappers in project root
- Add local changes auto-commit functionality
- Enhanced backup repository management

📁 Structure changes:
- Move all scripts to bin/ directory
- Create wrapper scripts in root (cli, update, start, stop, logs)
- Add setup-backup.sh for backup repository management
- Update documentation with new CLI examples

🛠️ CLI capabilities:
- Django commands (shell, migrate, collectstatic, etc.)
- System commands (bash, logs, status)
- Container management (restart, status)
- Interactive and non-interactive modes

📚 Documentation:
- Updated SCRIPTS_README.md with CLI examples
- Added troubleshooting section
- Comprehensive usage examples
2025-11-25 06:51:52 +09:00

157 lines
5.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# =============================================================================
# SmartSolTech - Настройка резервного репозитория
# =============================================================================
set -e
# Цвета для вывода
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m'
log() {
echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1"
}
success() {
echo -e "${GREEN}$1${NC}"
}
warning() {
echo -e "${YELLOW}⚠️ $1${NC}"
}
error() {
echo -e "${RED}$1${NC}"
}
echo ""
echo "🔧 SmartSolTech - Настройка backup репозитория"
echo "=============================================="
echo ""
# Проверка что мы в Git репозитории
if [ ! -d ".git" ]; then
error "Не найден Git репозиторий. Запустите скрипт из корня проекта."
exit 1
fi
# Показать текущие репозитории
log "Текущие удаленные репозитории:"
git remote -v
echo ""
# Функция добавления нового backup репозитория
add_backup_repo() {
local repo_url="$1"
local repo_name="${2:-backup}"
log "Добавление backup репозитория..."
# Проверяем не существует ли уже такой remote
if git remote | grep -q "^${repo_name}$"; then
warning "Репозиторий $repo_name уже существует"
git remote -v | grep "^${repo_name}"
read -p "Заменить? (y/N): " replace_choice
if [[ $replace_choice =~ ^[Yy]$ ]]; then
git remote remove $repo_name
else
return 0
fi
fi
# Добавляем новый remote
if git remote add $repo_name "$repo_url"; then
success "Backup репозиторий $repo_name добавлен"
# Проверяем подключение
log "Проверка подключения..."
if git ls-remote $repo_name > /dev/null 2>&1; then
success "Подключение к $repo_name работает"
# Предлагаем сделать первый push
read -p "Отправить текущее состояние в backup? (y/N): " push_choice
if [[ $push_choice =~ ^[Yy]$ ]]; then
git push $repo_name master
success "Backup создан в $repo_name"
fi
else
error "Не удалось подключиться к $repo_name"
git remote remove $repo_name
return 1
fi
else
error "Не удалось добавить backup репозиторий"
return 1
fi
}
# Обработка параметров
case "${1:-}" in
--help|-h)
echo "Использование:"
echo " $0 # Интерактивная настройка"
echo " $0 <URL> # Добавить backup репозиторий"
echo " $0 <URL> <name> # Добавить с именем"
echo " $0 --remove <name> # Удалить backup репозиторий"
echo " $0 --list # Показать все репозитории"
echo ""
echo "Примеры:"
echo " $0 git@github.com:user/backup.git"
echo " $0 git@server.com:backup.git mybkp"
echo " $0 --remove backup"
echo ""
exit 0
;;
--list)
log "Все удаленные репозитории:"
git remote -v
exit 0
;;
--remove)
if [ -z "$2" ]; then
error "Укажите имя репозитория для удаления"
exit 1
fi
log "Удаление репозитория $2..."
if git remote remove "$2"; then
success "Репозиторий $2 удален"
else
error "Не удалось удалить репозиторий $2"
fi
exit 0
;;
"")
# Интерактивный режим
echo "💡 Примеры URL репозиториев:"
echo " git@github.com:username/repo-backup.git"
echo " ssh://git@server.com:2222/user/backup.git"
echo " https://github.com/username/repo-backup.git"
echo ""
read -p "Введите URL backup репозитория: " repo_url
if [ -z "$repo_url" ]; then
warning "URL не указан, выход"
exit 0
fi
read -p "Введите имя (backup): " repo_name
repo_name="${repo_name:-backup}"
add_backup_repo "$repo_url" "$repo_name"
;;
*)
# URL передан как параметр
add_backup_repo "$1" "$2"
;;
esac
echo ""
log "Обновленный список репозиториев:"
git remote -v
echo ""
success "Готово!"