handleDownloadPath method
Future<void>
handleDownloadPath(
- ArgResults argResults
)
Implementation
Future<void> handleDownloadPath(ArgResults argResults) async {
final args = argResults.rest.sublist(1);
if (args.isEmpty) _exit('Usage: download-path <path>');
await _prepareClient();
final remotePath = args[0];
final localDestination = argResults['target'] as String?;
final recursive = argResults['recursive'] as bool;
final onConflict = argResults['on-conflict'] as String;
final preserveTimestamps = argResults['preserve-timestamps'] as bool;
final include = argResults['include'] as List<String>;
final exclude = argResults['exclude'] as List<String>;
final batchId = config.generateBatchId(
'download', [remotePath], localDestination ?? '.');
print("\ud83d\udd04 Batch ID: $batchId");
var batchState = await config.loadBatchState(batchId);
try {
await client.downloadPath(
remotePath,
localDestination: localDestination,
recursive: recursive,
onConflict: onConflict,
preserveTimestamps: preserveTimestamps,
include: include,
exclude: exclude,
batchId: batchId,
initialBatchState: batchState,
saveStateCallback: (state) => config.saveBatchState(batchId, state),
);
await config.deleteBatchState(batchId);
print("\u2705 Download batch completed.");
} catch (e) {
_exit('Download failed: $e');
}
}