restoreFromBackup static method
Restore pubspec.yaml from backup.
Returns a BackupRestoreResult that distinguishes between:
- RestoreStatus.success — restored successfully
- RestoreStatus.noBackup — no backup file exists (exit 2 in CLI)
- RestoreStatus.ioError — backup exists but copy failed (exit 2 in CLI)
Implementation
static Future<BackupRestoreResult> restoreFromBackup() async {
final backupFile = File(FileConfig.backupFile);
if (!backupFile.existsSync()) {
return const BackupRestoreResult(
RestoreStatus.noBackup,
'No backup file found (${FileConfig.backupFile}). '
'Run smartpub clean first to create one.',
);
}
try {
await backupFile.copy(FileConfig.pubspecFile);
return const BackupRestoreResult(RestoreStatus.success);
} catch (e) {
return BackupRestoreResult(RestoreStatus.ioError, 'Restore failed: $e');
}
}