55 lines
1.5 KiB
Bash
Executable File
55 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Собирает весь backend в один .md файл
|
|
|
|
PROJECT_DIR="/root/filwordspl/backend"
|
|
OUTPUT="/root/FILWORDS_BACKEND_$(date +%Y%m%d_%H%M).md"
|
|
|
|
{
|
|
echo "# 🐍 Filwords PL — Backend"
|
|
echo ""
|
|
echo "**Дата:** $(date)"
|
|
echo "**Путь:** $PROJECT_DIR"
|
|
echo ""
|
|
|
|
# Все .py файлы (кроме venv и __pycache__)
|
|
for f in $(find "$PROJECT_DIR" -type f -name "*.py" -not -path "*/venv/*" -not -path "*/__pycache__/*" | sort); do
|
|
REL_PATH="${f#$PROJECT_DIR/}"
|
|
echo "### \`$REL_PATH\`"
|
|
echo '```python'
|
|
cat "$f"
|
|
echo '```'
|
|
echo ""
|
|
done
|
|
|
|
# Конфиги
|
|
for f in "$PROJECT_DIR/requirements.txt" "$PROJECT_DIR/pytest.ini" "$PROJECT_DIR/.gitignore"; do
|
|
if [ -f "$f" ]; then
|
|
REL_PATH="${f#$PROJECT_DIR/}"
|
|
echo "### \`$REL_PATH\`"
|
|
echo '```'
|
|
cat "$f"
|
|
echo '```'
|
|
echo ""
|
|
fi
|
|
done
|
|
|
|
# Тесты
|
|
if [ -d "$PROJECT_DIR/tests" ]; then
|
|
for f in $(find "$PROJECT_DIR/tests" -type f -name "*.py" | sort); do
|
|
REL_PATH="${f#$PROJECT_DIR/}"
|
|
echo "### \`$REL_PATH\`"
|
|
echo '```python'
|
|
cat "$f"
|
|
echo '```'
|
|
echo ""
|
|
done
|
|
fi
|
|
|
|
} > "$OUTPUT"
|
|
|
|
echo "🔍 Проверка секретов (должно быть 0):"
|
|
grep -c -E "(sk-[a-zA-Z0-9]{20,}|postgresql://[^ ]*:[^ ]*@|BOT_TOKEN\s*=\s*[\"'][0-9]|password\s*=\s*[\"'][^\"']{4,})" "$OUTPUT" || echo "0"
|
|
|
|
echo "✅ Готово: $OUTPUT"
|
|
echo "📊 Размер: $(du -h "$OUTPUT" | cut -f1)"
|
|
echo "📏 Строк: $(wc -l < "$OUTPUT")" |