getReleaseStatus method

Future<String> getReleaseStatus(
  1. String projectPath
)

Retrieves structured status summary of current or latest release operation.

Implementation

Future<String> getReleaseStatus(String projectPath) async {
  final currentState = await _stateTracker.loadCurrentState(projectPath);
  final latestMetadata =
      await _metadataManager.getLatestMetadata(projectPath);

  final buffer = StringBuffer();
  buffer.writeln('=== RELEASE STATUS SUMMARY ===');

  if (currentState != null) {
    buffer.writeln('Active/Last Operation: ${currentState.operation}');
    buffer.writeln('Mode:                  ${currentState.releaseMode}');
    buffer.writeln(
        'Status:                ${currentState.status.key.toUpperCase()}');
    if (currentState.environment != null) {
      buffer.writeln('Environment:           ${currentState.environment}');
    }
    if (currentState.platform != null) {
      buffer.writeln('Platform:              ${currentState.platform}');
    }
    if (currentState.versionName != null) {
      buffer.writeln(
          'Version:               ${currentState.versionName}+${currentState.buildNumber ?? "1"}');
    }
    if (currentState.failedStage != null) {
      buffer.writeln('Failed Stage:          ${currentState.failedStage}');
    }
    if (currentState.errors.isNotEmpty) {
      buffer.writeln('\nErrors:');
      for (final err in currentState.errors) {
        buffer.writeln('  • $err');
      }
    }
  } else if (latestMetadata != null) {
    buffer.writeln('Status:                COMPLETED');
    buffer.writeln('Mode:                  ${latestMetadata.releaseMode}');
    buffer.writeln(
        'Version:               ${latestMetadata.versionName}+${latestMetadata.buildNumber}');
    buffer.writeln(
        'Platforms:             ${latestMetadata.platforms.join(', ')}');
    if (latestMetadata.environment != null) {
      buffer.writeln('Environment:           ${latestMetadata.environment}');
    }
    if (latestMetadata.tag != null) {
      buffer.writeln('Git Tag:               ${latestMetadata.tag}');
    }
    buffer.writeln('Timestamp:             ${latestMetadata.timestamp}');
  } else {
    buffer.writeln('No active or previous release state found in project.');
  }

  buffer.writeln('==============================');
  return buffer.toString();
}