tailDeploymentStatus static method

Future<void> tailDeploymentStatus(
  1. Client cloudApiClient, {
  2. required CommandLogger logger,
  3. required String cloudCapsuleId,
  4. required String attemptId,
  5. bool inUtc = false,
})

Implementation

static Future<void> tailDeploymentStatus(
  final Client cloudApiClient, {
  required final CommandLogger logger,
  required final String cloudCapsuleId,
  required final String attemptId,
  final bool inUtc = false,
}) async {
  final stageStream = cloudApiClient.status.tailDeployAttemptStatus(
    cloudCapsuleId: cloudCapsuleId,
    attemptId: attemptId,
  );

  DeployStageType? lastStageType;
  await for (final stage in stageStream) {
    if (lastStageType == null) {
      logger.line(
        'Tracking status of $cloudCapsuleId deploy $attemptId'
        ', started at ${stage.startedAt?.toTzString(inUtc, _numTimeStampChars)}:',
      );
      logger.line('(Press Ctrl+C to exit)');
      logger.line('');
    }

    logger.line(_generateStatusLine(stage));
    if (stage.stageStatus
        case DeployProgressStatus.success ||
            DeployProgressStatus.failure ||
            DeployProgressStatus.cancelled) {
      logger.line('');
    }
    lastStageType = stage.stageType;
  }
}