getInstalledVersion();
$this->line("Version installée : v{$installed}");
$this->line("Vérification des mises à jour...");
$latest = $updates->fetchLatestRelease(useCache: false);
if (! $latest) {
$this->error("Impossible de contacter le serveur de mises à jour.");
return self::FAILURE;
}
if (! version_compare($latest['version'], $installed, '>')) {
$this->info("L'application est déjà à jour (v{$installed}).");
return self::SUCCESS;
}
$this->info("Mise à jour disponible : v{$installed} → v{$latest['version']}");
if ($latest['body']) {
$this->line($latest['body']);
}
if ($this->option('check')) {
return self::SUCCESS;
}
if (! $this->option('force') && ! $this->confirm('Procéder à la mise à jour ?', true)) {
return self::SUCCESS;
}
$this->line("");
try {
$updates->applyUpdate($latest, fn ($msg) => $this->line($msg));
} catch (\Exception $e) {
$this->error("La mise à jour a échoué : " . $e->getMessage());
$this->warn("Vérifiez les sauvegardes dans storage/app/backups/ pour une restauration manuelle.");
return self::FAILURE;
}
return self::SUCCESS;
}
}