finish method

void finish({
  1. required bool success,
  2. RetainSection? overrideRetention,
})

Finishes the section.

success selects the completion icon ( or ) and which of successMessage / failedMessage replaces the heading (when non-null).

Body retention is successRetention or failureRetention unless overrideRetention is passed:

Implementation

void finish({required bool success, RetainSection? overrideRetention}) {
  if (_finished) return;
  _finished = true;
  _success = success;
  _stopSpinner();
  _finishMessage = success ? successMessage : failedMessage;
  final retention =
      overrideRetention ?? (success ? successRetention : failureRetention);
  switch (retention) {
    case RetainSection.clear:
      final header = _buildHeaderLine(_terminal.columns);
      if (header != null) {
        _renderer.finish(lines: [header]);
      } else {
        _renderer.clear();
      }
    case RetainSection.keepCurrent:
      _renderer.finish(lines: _buildLines());
    case RetainSection.keepFull:
      _renderer.finish(lines: _buildLines(full: true));
  }
}