#!/bin/bash # Скрипт для обновления только конфигурации Glance (без бэкенда) # Использование: ./upload-glance-config.sh [LOCAL_DIR] [USER] [HOST] # Параметры по умолчанию LOCAL_GLANCE_DIR="${1:-./glance}" REMOTE_USER="${2:-root}" REMOTE_HOST="${3:-192.168.50.114}" REMOTE_GLANCE_CONFIG="/opt/glance/config" SSH_OPTS="-q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" SCP_OPTS="-q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" # Цвета для вывода RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' CYAN='\033[0;36m' NC='\033[0m' # No Color # Функция для выхода с ошибкой exit_on_error() { echo -e "${RED}Ошибка: $1${NC}" >&2 exit 1 } # Проверяем наличие локальной директории glance if [ ! -d "$LOCAL_GLANCE_DIR" ]; then exit_on_error "Директория $LOCAL_GLANCE_DIR не найдена!" fi echo -e "${CYAN}========================================${NC}" echo -e "${CYAN}Обновление конфигурации Glance${NC}" echo -e "${CYAN}========================================${NC}" # 1. Загружаем home.yml на сервер LOCAL_HOME_YML="$LOCAL_GLANCE_DIR/home.yml" if [ -f "$LOCAL_HOME_YML" ]; then echo -e "\n${YELLOW}📄 Загружаем главный файл конфигурации...${NC}" scp $SCP_OPTS "$LOCAL_HOME_YML" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_GLANCE_CONFIG}/glance.yml" if [ $? -ne 0 ]; then exit_on_error "Ошибка при загрузке home.yml" fi echo -e "${GREEN}✅ home.yml успешно загружен${NC}" else echo -e "${YELLOW}⚠️ Файл home.yml не найден в $LOCAL_GLANCE_DIR${NC}" fi # 2. Загружаем директорию widgets рекурсивно LOCAL_WIDGETS_DIR="$LOCAL_GLANCE_DIR/widgets" if [ -d "$LOCAL_WIDGETS_DIR" ]; then echo -e "\n${YELLOW}📦 Загружаем директорию widgets...${NC}" # Создаем директорию widgets на сервере, если не существует ssh $SSH_OPTS "${REMOTE_USER}@${REMOTE_HOST}" "mkdir -p ${REMOTE_GLANCE_CONFIG}/widgets" if [ $? -ne 0 ]; then exit_on_error "Не удалось создать директорию widgets на сервере" fi # Копируем все файлы из widgets рекурсивно scp $SCP_OPTS -r "${LOCAL_WIDGETS_DIR}"/* "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_GLANCE_CONFIG}/widgets/" if [ $? -ne 0 ]; then exit_on_error "Ошибка при загрузке директории widgets" fi echo -e "${GREEN}✅ Директория widgets успешно загружена${NC}" else echo -e "${YELLOW}⚠️ Директория widgets не найдена в $LOCAL_GLANCE_DIR${NC}" fi echo -e "\n${CYAN}========================================${NC}" echo -e "${GREEN}Конфигурация успешно обновлена! 🎉${NC}" echo -e "${CYAN}========================================${NC}" echo -e "${YELLOW}Примечание: Glance автоматически перезагрузит конфигурацию${NC}"