# Инструкция по сборке плагина

## 🚀 Быстрый старт

Для создания ZIP-архива плагина просто выполните:

```bash
./build.sh
```

## 📋 Что делает скрипт

Скрипт `build.sh` автоматически:

1. ✅ Извлекает версию плагина из PHP файла
2. ✅ Удаляет старый архив (если существует)
3. ✅ Создаёт временную директорию для сборки
4. ✅ Копирует все необходимые файлы:
   - `contentzavod-proxy.php` - основной файл плагина
   - `README.md` - краткое описание
   - `УСТАНОВКА.md` - инструкция по установке
   - `ИНСТРУКЦИЯ_ROBOTS_TXT.md` - настройка robots.txt
   - `СОВМЕСТИМОСТЬ.md` - совместимость с другими плагинами
   - `CHANGELOG.md` - история изменений
   - `docs/` - папка с документацией
5. ✅ Создаёт ZIP-архив с правильной структурой
6. ✅ Исключает служебные файлы (`.DS_Store`, `__MACOSX`)
7. ✅ Показывает размер и содержимое архива
8. ✅ Очищает временные файлы

## 📦 Результат

После выполнения скрипта вы получите файл:

```
contentzavod-proxy.zip
```

Этот архив готов для установки в WordPress через:
- Админ-панель WordPress (Плагины → Добавить новый → Загрузить плагин)
- FTP/SFTP (распаковать в `/wp-content/plugins/`)

## 🔧 Требования

Для работы скрипта необходимо:

- **Bash** (предустановлен на macOS и Linux)
- **zip** утилита (предустановлена на macOS и большинстве Linux)

### Проверка наличия zip:

```bash
which zip
```

Если команда не найдена, установите:

**Ubuntu/Debian:**
```bash
sudo apt-get install zip
```

**macOS (через Homebrew):**
```bash
brew install zip
```

**CentOS/RHEL:**
```bash
sudo yum install zip
```

## 📁 Структура архива

Созданный архив имеет следующую структуру:

```
contentzavod-proxy.zip
└── contentzavod-proxy/
    ├── contentzavod-proxy.php
    ├── README.md
    ├── УСТАНОВКА.md
    ├── ИНСТРУКЦИЯ_ROBOTS_TXT.md
    ├── СОВМЕСТИМОСТЬ.md
    ├── CHANGELOG.md
    └── docs/
        ├── README.md
        ├── INSTALLATION.md
        └── TECHNICAL.md
```

Эта структура соответствует стандарту WordPress для плагинов.

## 🎨 Цветной вывод

Скрипт использует цветной вывод для удобства:

- 🟡 **Жёлтый** - информационные сообщения
- 🟢 **Зелёный** - успешные операции и результаты
- 🔴 **Красный** - ошибки

## 🔄 Автоматическое определение версии

Скрипт автоматически извлекает версию из заголовка плагина:

```php
* Version: 1.3.0
```

Версия отображается при запуске скрипта.

## 🛠️ Кастомизация

### Изменить имя архива

Отредактируйте строку в `build.sh`:

```bash
ZIP_FILE="${PLUGIN_NAME}.zip"
```

Например, для добавления версии в имя файла:

```bash
ZIP_FILE="${PLUGIN_NAME}-${PLUGIN_VERSION}.zip"
```

### Добавить дополнительные файлы

Добавьте строки в секцию копирования:

```bash
cp ВАШ_ФАЙЛ.md "$TEMP_DIR/$PLUGIN_NAME/"
```

### Исключить файлы из архива

Добавьте опции `-x` в команду zip:

```bash
zip -r "../$ZIP_FILE" "$PLUGIN_NAME" -x "*.DS_Store" -x "__MACOSX" -x "*.git*"
```

## 📊 Пример вывода

```
==================================
  Сборка плагина ContentZavod
==================================

Версия: 1.3.0
Архив: contentzavod-proxy.zip

Удаление старого архива...
Копирование файлов...
Создание ZIP-архива...

✅ Архив успешно создан!
Файл: contentzavod-proxy.zip
Размер: 28K

Содержимое архива:
    10375  10-24-2025 17:35   contentzavod-proxy/СОВМЕСТИМОСТЬ.md
    14124  10-24-2025 17:35   contentzavod-proxy/contentzavod-proxy.php
     5383  10-24-2025 17:35   contentzavod-proxy/CHANGELOG.md
     7612  10-24-2025 17:35   contentzavod-proxy/УСТАНОВКА.md
        0  10-24-2025 17:35   contentzavod-proxy/docs/
     6753  10-24-2025 17:35   contentzavod-proxy/docs/README.md
    13060  10-24-2025 17:35   contentzavod-proxy/docs/TECHNICAL.md
     7423  10-24-2025 17:35   contentzavod-proxy/docs/INSTALLATION.md
     2582  10-24-2025 17:35   contentzavod-proxy/README.md
     6917  10-24-2025 17:35   contentzavod-proxy/ИНСТРУКЦИЯ_ROBOTS_TXT.md

Готово! Плагин можно устанавливать в WordPress.
```

## ❌ Обработка ошибок

### Ошибка: "Файл contentzavod-proxy.php не найден"

**Причина:** Скрипт запущен не из директории проекта.

**Решение:**
```bash
cd /path/to/test_wordpress_plugin
./build.sh
```

### Ошибка: "Permission denied"

**Причина:** Скрипт не имеет прав на выполнение.

**Решение:**
```bash
chmod +x build.sh
./build.sh
```

### Ошибка: "zip: command not found"

**Причина:** Утилита zip не установлена.

**Решение:** Установите zip (см. раздел "Требования" выше).

## 🔐 Безопасность

Скрипт:
- ✅ Не требует прав sudo
- ✅ Работает только с локальными файлами
- ✅ Не выполняет сетевых запросов
- ✅ Не изменяет исходные файлы
- ✅ Использует временную директорию с уникальным именем (PID процесса)
- ✅ Автоматически очищает временные файлы

## 📝 Changelog скрипта

### Версия 1.0 (2025-10-24)
- Первая версия скрипта сборки
- Автоматическое определение версии
- Цветной вывод
- Проверка ошибок
- Показ содержимого архива

## 💡 Советы

1. **Запускайте скрипт перед каждым релизом** для создания чистого архива
2. **Проверяйте содержимое архива** в выводе скрипта
3. **Тестируйте архив** перед публикацией (установите в тестовый WordPress)
4. **Храните архивы** для каждой версии (добавьте версию в имя файла)

## 🔗 Связанные файлы

- `contentzavod-proxy.php` - основной файл плагина
- `CHANGELOG.md` - история изменений плагина
- `УСТАНОВКА.md` - инструкция по установке плагина

---

**Автор:** Fittin  
**Лицензия:** Fittin License  
**Версия скрипта:** 1.0


