import 'dart:io';

void main() async {
  print("🛠️  Avvio build...");

  // 1. Esegui la build
  var process = await Process.start('flutter', ['build', 'appbundle']);

  // Mostra l'output in tempo reale
  stdout.addStream(process.stdout);
  stderr.addStream(process.stderr);

  var exitCode = await process.exitCode;

  if (exitCode != 0) {
    print("❌ Errore nella build.");
    return;
  }

  // 2. Leggi la versione dal pubspec.yaml
  var pubspec = await File('pubspec.yaml').readAsLines();
  var versionLine = pubspec.firstWhere((line) => line.startsWith('version:'));
  var version = versionLine.split('version: ')[1].trim();

  // 3. DEFINIZIONE PERCORSI

  // A. DOVE SI TROVA ORA (Sempre nella cartella del progetto)
  var sourceFile = File('build/app/outputs/bundle/release/app-release.aab');

  // B. DOVE LO VUOI METTERE (Il tuo disco esterno)
  // Nota: Assicurati che la cartella "buid" esista o correggi in "build" se era un refuso
  var targetDirectory = '/Volumes/NVME-2TB/cai/buid';

  if (await sourceFile.exists()) {
    // Crea la directory sul disco esterno se non esiste (per sicurezza)
    await Directory(targetDirectory).create(recursive: true);

    // Crea il percorso completo di destinazione
    var newPath = '$targetDirectory/CAI_App_v$version.aab';

    // Esegue la copia
    await sourceFile.copy(newPath);

    print("✅ File creato con successo!");
    print("📂 Destinazione: $newPath");
  } else {
    print("❌ Impossibile trovare il file generato in build/app/outputs/...");
  }
}