onStepChanged method

  1. @override
void onStepChanged(
  1. BuildStep step,
  2. StepStatus status, [
  3. Object? error
])
override

Implementation

@override
void onStepChanged(BuildStep step, StepStatus status, [Object? error]) {
  var message = '';
  final stepName = step.runtimeType.toString();

  if (status == StepStatus.error) {
    message = 'Step "$stepName" completed with error';
    logger.stderr(message);
    if (error != null) {
      logger.stderr(error.toString());
    }
    return;
  }

  if (step != _lastStep) {
    if (_lastStep == null) {
      logger.trace('First step');
    } else {
      logger.trace('Step changed');
    }
    _lastStep = step;

    if (_lastProgress != null) {
      message = 'Step "$stepName" completed"';

      _lastProgress!.finish(
        message: message,
        showTiming: true,
      );
      _lastProgress = null;
    }
  }

  if (status == StepStatus.inProgress) {
    message = 'Running step "$stepName"';
    _lastProgress = logger.progress(message);
    logger.trace('Set progress for $stepName');
  }
}