From 4b42eac73987ad9df14a6f2611eeff8fd96c73da Mon Sep 17 00:00:00 2001 From: gitadmin Date: Sat, 27 Sep 2025 22:15:05 +0300 Subject: [PATCH] add post-deploy logging --- services/post-deploy.sh | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/services/post-deploy.sh b/services/post-deploy.sh index 2ead01d..1a201e2 100644 --- a/services/post-deploy.sh +++ b/services/post-deploy.sh @@ -11,18 +11,34 @@ GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color +# Функция для записи в лог-файл +write_to_log() { + local message="$1" + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo "[$timestamp] [PostDeploy] $message" >> "$LOG_FILE" +} + # Функция для логирования log() { - echo -e "${GREEN}[$(date '+%Y-%m-%d %H:%M:%S')] $1${NC}" + local message="$1" + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo -e "${GREEN}[$timestamp] $1${NC}" + write_to_log "$message" } error() { - echo -e "${RED}[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: $1${NC}" + local message="$1" + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo -e "${RED}[$timestamp] ERROR: $1${NC}" + write_to_log "ERROR: $message" exit 1 } warning() { - echo -e "${YELLOW}[$(date '+%Y-%m-%d %H:%M:%S')] WARNING: $1${NC}" + local message="$1" + local timestamp=$(date '+%Y-%m-%d %H:%M:%S') + echo -e "${YELLOW}[$timestamp] WARNING: $1${NC}" + write_to_log "WARNING: $message" } # Определяем корневую директорию проекта @@ -35,8 +51,27 @@ SERVICES_DIR="$PROJECT_ROOT/services" SERVICES_BACKUP_DIR="$SERVICES_DIR/backups" SYSTEMD_DIR="/etc/systemd/system" +# Загружаем переменные окружения из .env файла +if [ -f "$PROJECT_ROOT/.env" ]; then + source "$PROJECT_ROOT/.env" +fi + +# Определяем лог-файл из переменной окружения или используем значение по умолчанию +LOG_FILE="${LOG_FILE:-$PROJECT_ROOT/post-deploy.log}" + log "Начинаем post-deploy процесс для проекта: $PROJECT_ROOT" +# 0. Установка прав на исполнение для всех .sh файлов в основном каталоге проекта +log "Устанавливаем права на исполнение для всех .sh файлов в проекте..." + +# Находим все .sh файлы в основном каталоге проекта (не в подкаталогах) +for sh_file in "$PROJECT_ROOT"/*.sh; do + if [ -f "$sh_file" ]; then + chmod +x "$sh_file" + log "Установлены права на исполнение для: $(basename "$sh_file")" + fi +done + # 1. Проверка и создание виртуального окружения Python log "Проверяем наличие виртуального окружения Python..."