runBackup method

Future<IncrementalBackupResult> runBackup({
  1. required Directory sourceDirectory,
  2. required Directory backupDirectory,
  3. Future<void> onProgress(
    1. BackupProgress progress
    )?,
})

Implementation

Future<IncrementalBackupResult> runBackup({
  required Directory sourceDirectory,
  required Directory backupDirectory,
  Future<void> Function(BackupProgress progress)? onProgress,
}) async {
  final activeBackup = _activeBackup;
  if (activeBackup != null) return activeBackup;

  final operation = _executeBackup(
    sourceDirectory: sourceDirectory,
    backupDirectory: backupDirectory,
    onProgress: onProgress,
  );
  _activeBackup = operation;
  try {
    return await operation;
  } finally {
    if (identical(_activeBackup, operation)) {
      _activeBackup = null;
    }
  }
}