diff --git a/services/post-deploy.sh b/services/post-deploy.sh index 1a201e2..5f09d7b 100644 --- a/services/post-deploy.sh +++ b/services/post-deploy.sh @@ -53,12 +53,25 @@ SYSTEMD_DIR="/etc/systemd/system" # Загружаем переменные окружения из .env файла if [ -f "$PROJECT_ROOT/.env" ]; then - source "$PROJECT_ROOT/.env" + # Безопасная загрузка переменных из .env файла + while IFS= read -r line || [ -n "$line" ]; do + # Пропускаем пустые строки и комментарии + if [[ -n "$line" && ! "$line" =~ ^[[:space:]]*# ]]; then + # Проверяем, что строка содержит знак равенства + if [[ "$line" =~ ^[^=]+=.* ]]; then + # Экспортируем переменную + export "$line" + fi + fi + done < "$PROJECT_ROOT/.env" fi # Определяем лог-файл из переменной окружения или используем значение по умолчанию LOG_FILE="${LOG_FILE:-$PROJECT_ROOT/post-deploy.log}" +# Выводим информацию о лог-файле (только в консоль, чтобы не создавать циклическое логирование) +echo -e "${GREEN}[$(date '+%Y-%m-%d %H:%M:%S')] Лог-файл: $LOG_FILE${NC}" + log "Начинаем post-deploy процесс для проекта: $PROJECT_ROOT" # 0. Установка прав на исполнение для всех .sh файлов в основном каталоге проекта