/
Dmitry-F
/
cbt_tool
Обзор
Документация
Войти
/
Dmitry-F
/
cbt_tool
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
bin/entries_audit
153 строки
5 KB
Dmitriy-Filatov
🧹 ФИНАЛЬНАЯ СТЕРИЛИЗАЦИЯ ИНФРАСТРУКТУРЫ
17 мар 2026, 10:59
17 мар 2026, 10:59
d3fec0b
Код
Авторство
О чём код?
#!/bin/bash echo "=========================================" echo "🔍 АУДИТ ENTRIES_CONTROLLER И ФАЙЛОВОЙ ЗАГРУЗКИ" echo "=========================================" echo "" REPORT_FILE="/tmp/entries_audit.txt" # 1. Проверка entries_controller.rb echo "📁 1. entries_controller.rb" > "$REPORT_FILE" echo "----------------------------------------" >> "$REPORT_FILE" CONTROLLER="engines/smer_diary/app/controllers/smer_diary/entries_controller.rb" if [ -f "$CONTROLLER" ]; then echo "✅ Файл контроллера существует" >> "$REPORT_FILE" # Проверка respond_to if grep -q "respond_to.*format.turbo_stream" "$CONTROLLER"; then echo " ✅ respond_to с turbo_stream есть" >> "$REPORT_FILE" else echo " ❌ НЕТ respond_to с turbo_stream" >> "$REPORT_FILE" fi # Проверка strong params if grep -q ":audio_recording" "$CONTROLLER"; then echo " ✅ :audio_recording разрешён в strong params" >> "$REPORT_FILE" else echo " ❌ :audio_recording НЕ разрешён" >> "$REPORT_FILE" fi # Проверка redirect_to if grep -q "redirect_to main_app.client_path" "$CONTROLLER"; then echo " ✅ редиректы на main_app.client_path" >> "$REPORT_FILE" else echo " ❌ редиректы НЕ на main_app.client_path" >> "$REPORT_FILE" fi else echo "❌ Контроллер не найден!" >> "$REPORT_FILE" fi echo "" >> "$REPORT_FILE" # 2. Проверка формы echo "📁 2. Форма _form.html.erb" >> "$REPORT_FILE" echo "----------------------------------------" >> "$REPORT_FILE" FORM="engines/smer_diary/app/views/smer_diary/entries/_form.html.erb" if [ -f "$FORM" ]; then echo "✅ Форма существует" >> "$REPORT_FILE" # Проверка multipart if grep -q "multipart: true" "$FORM"; then echo " ✅ multipart: true есть" >> "$REPORT_FILE" else echo " ❌ multipart: true ОТСУТСТВУЕТ" >> "$REPORT_FILE" fi # Проверка file_field if grep -q "file_field.*audio_recording" "$FORM"; then echo " ✅ file_field :audio_recording есть" >> "$REPORT_FILE" else echo " ❌ file_field :audio_recording ОТСУТСТВУЕТ" >> "$REPORT_FILE" fi # Проверка data-controller if grep -q "data-controller=\"audio-recorder\"" "$FORM"; then echo " ✅ audio-recorder контроллер подключен" >> "$REPORT_FILE" else echo " ❌ audio-recorder НЕ ПОДКЛЮЧЕН" >> "$REPORT_FILE" fi else echo "❌ Форма не найдена!" >> "$REPORT_FILE" fi echo "" >> "$REPORT_FILE" # 3. Проверка модели echo "📁 3. Модель DiaryEntry" >> "$REPORT_FILE" echo "----------------------------------------" >> "$REPORT_FILE" MODEL="engines/smer_diary/app/models/smer_diary/diary_entry.rb" if [ -f "$MODEL" ]; then echo "✅ Модель существует" >> "$REPORT_FILE" # Проверка has_one_attached if grep -q "has_one_attached.*audio_recording" "$MODEL"; then echo " ✅ has_one_attached :audio_recording есть" >> "$REPORT_FILE" else echo " ❌ has_one_attached :audio_recording ОТСУТСТВУЕТ" >> "$REPORT_FILE" fi # Проверка валидаций if grep -q "validate.*audio_recording" "$MODEL"; then echo " ✅ Валидации для аудио есть" >> "$REPORT_FILE" else echo " ⚠️ Валидации для аудио отсутствуют (не критично)" >> "$REPORT_FILE" fi else echo "❌ Модель не найдена!" >> "$REPORT_FILE" fi echo "" >> "$REPORT_FILE" # 4. Проверка активного хранилища echo "📁 4. ActiveStorage" >> "$REPORT_FILE" echo "----------------------------------------" >> "$REPORT_FILE" if ls db/migrate/*active_storage* 2>/dev/null | head -1; then echo "✅ Миграции ActiveStorage есть" >> "$REPORT_FILE" else echo "❌ Миграции ActiveStorage отсутствуют" >> "$REPORT_FILE" fi echo "" >> "$REPORT_FILE" # 5. Проверка Importmap echo "📁 5. Importmap" >> "$REPORT_FILE" echo "----------------------------------------" >> "$REPORT_FILE" if grep -q "@rails/activestorage" "config/importmap.rb" 2>/dev/null; then echo "✅ @rails/activestorage подключён" >> "$REPORT_FILE" else echo "⚠️ @rails/activestorage не найден (для Direct Upload)" >> "$REPORT_FILE" fi echo "" >> "$REPORT_FILE" # 6. Финальный вердикт echo "📋 ФИНАЛЬНЫЙ ВЕРДИКТ" >> "$REPORT_FILE" echo "----------------------------------------" >> "$REPORT_FILE" RED_COUNT=$(grep -c "❌" "$REPORT_FILE") YELLOW_COUNT=$(grep -c "⚠️" "$REPORT_FILE") GREEN_COUNT=$(grep -c "✅" "$REPORT_FILE") echo "🔴 Критических проблем: $RED_COUNT" >> "$REPORT_FILE" echo "🟡 Предупреждений: $YELLOW_COUNT" >> "$REPORT_FILE" echo "🟢 Готово: $GREEN_COUNT" >> "$REPORT_FILE" if [ "$RED_COUNT" -eq 0 ]; then echo "🎉 Контроллер готов к файловой загрузке!" >> "$REPORT_FILE" else echo "⚠️ Есть критические проблемы — нужно исправить" >> "$REPORT_FILE" fi cat "$REPORT_FILE" | pbcopy echo "" echo "✅ АУДИТ ВЫПОЛНЕН. Результат в буфере обмена." echo "" grep -E "✅|❌|⚠️" "$REPORT_FILE" | head -10 echo ""