run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
Future<int> run() async {
final path = argResults!['path'] as String;
final filePath = argResults!['file'] as String?;
final recursive = argResults!['recursive'] as bool;
final apply = argResults!['apply'] as bool;
final verbose = argResults!['verbose'] as bool;
final result = OperationResult();
try {
if (filePath != null) {
return await _batchDelete(
filePath: filePath,
basePath: path,
apply: apply,
verbose: verbose,
result: result,
);
}
final pathValidation = PathValidator.validatePath(path);
if (pathValidation.isDocument) {
return await _deleteSingleDocument(
path: path,
apply: apply,
verbose: verbose,
result: result,
);
} else {
if (!recursive) {
throw ValidationException(
'Path is a collection. Use --recursive to delete all documents in collection',
);
}
return await _deleteCollection(
collectionPath: path,
apply: apply,
verbose: verbose,
result: result,
);
}
} on Exception catch (e) {
stderr.writeln('Error: $e');
return 2;
}
}