run method

  1. @nonVirtual
  2. @override
FutureOr<int> run(
  1. List<String> filePaths, {
  2. required void print(
    1. String?
    ),
  3. required void completeTask(
    1. HookTask,
    2. int
    ),
  4. required void startTask(
    1. HookTask
    ),
})
override

Runs the task with the given file paths.

filePaths is the list of file paths to process. print is a function to print messages. completeTask is a function to mark the task as complete. startTask is a function to mark the task as started.

Returns a FutureOr

Implementation

@nonVirtual
@override
FutureOr<int> run(
  List<String> filePaths, {
  required void Function(String?) print,
  required void Function(HookTask, int) completeTask,
  required void Function(HookTask) startTask,
}) async {
  for (final task in subTasks(filePaths)) {
    startTask(task);
    final result = await task.run(
      filePaths,
      print: print,
      completeTask: completeTask,
      startTask: startTask,
    );

    completeTask(task, result);
    if (result != 0) return result;
  }

  completeTask(this, 0);

  return 0;
}