validate method

  1. @override
Future<ValidationCheck> validate(
  1. ReleaseContext context
)
override

Implementation

@override
Future<ValidationCheck> validate(ReleaseContext context) async {
  // 1. Flutter CLI
  final flutterResult = await _runner.run('flutter', ['--version']);
  if (flutterResult.exitCode != 0) {
    return ValidationCheck(
      name: name,
      status: CheckStatus.failed,
      message: 'Flutter SDK CLI not found on PATH.',
    );
  }

  // 2. Git CLI
  final gitResult = await _runner.run('git', ['--version']);
  if (gitResult.exitCode != 0) {
    return ValidationCheck(
      name: name,
      status: CheckStatus.warning,
      message: 'Git CLI not found on PATH.',
    );
  }

  // 3. Shorebird CLI (if release mode requires Shorebird)
  if (context.type == ReleaseType.shorebirdRelease ||
      context.type == ReleaseType.shorebirdPatch) {
    final shorebirdResult = await _runner.run('shorebird', ['--version']);
    if (shorebirdResult.exitCode != 0) {
      return ValidationCheck(
        name: name,
        status: CheckStatus.failed,
        message:
            'Shorebird CLI not found on PATH. Install Shorebird before running Shorebird commands.',
      );
    }
  }

  return ValidationCheck(
    name: name,
    status: CheckStatus.passed,
    message: 'Required tools available',
  );
}