const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');

console.log('🚀 Начинаю экспорт обновления для Self-hosted OTA...');

try {
  // 1. Выполняем стандартный экспорт Expo
  console.log('📦 Выполняю npx expo export...');
  execSync('npx expo export --platform android', { stdio: 'inherit' });

  // 2. Путь к папке экспорта
  const distDir = path.join(process.cwd(), 'dist');
  
  if (!fs.existsSync(distDir)) {
    throw new Error('Папка dist не была создана. Проверьте вывод npx expo export.');
  }

  // 3. Генерация манифеста (metadata.json) для нашего сервера
  // В современных версиях Expo манифесты генерируются автоматически в папке dist/metadata.json
  // Но если нам нужен кастомный формат для Nginx, мы можем доработать его здесь.
  
  const metadataPath = path.join(distDir, 'metadata.json');
  if (fs.existsSync(metadataPath)) {
    console.log('✅ Manifest (metadata.json) найден.');
  } else {
    console.warn('⚠️ Manifest не найден в dist. Возможно, версия Expo требует ручной генерации.');
  }

  console.log('\n--- ИНСТРУКЦИЯ ---');
  console.log('1. Скопируйте всё содержимое папки /dist на ваш сервер Nginx.');
  console.log('2. Убедитесь, что сервер возвращает заголовок "expo-protocol-version: 1".');
  console.log('3. Проверьте доступность по адресу из app.json.');
  console.log('------------------');

} catch (error) {
  console.error('❌ Ошибка при экспорте:', error.message);
  process.exit(1);
}
