run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
FutureOr? run() async {
final results = argResults;
if (results == null) throw ArgumentError('No arguments provided');
final stageStr = results[argPublishStage] as String?;
final isDryRun = results[argDryRun] as bool?;
final flutterPublish = FlutterPublish(
isDryRun: isDryRun,
stage: stageStr == null ? null : PublishStage.values.byName(stageStr),
);
final flutterBuild = FlutterBuild(
appName: results[argAppName] as String?,
appVersion: results[argAppVersion] as String?,
buildVersion: results[argBuildVersion] as String?,
buildMetadata: results[argBuildMetadata] as String?,
buildPreRelease: results[argBuildPreRelease] as String?,
buildArgs: results[argBuildArg] as List<String>,
mainPath: results[argMainPath] as String?,
flavor: results[argFlavor] as String?,
flutterSdkPath: results[argFlutterSdkPath] as String?,
);
final publishDistributor = getPublishDistributor(
results: results,
flutterPublish: flutterPublish,
flutterBuild: flutterBuild,
);
await publishDistributor.publish();
if (isDryRun ?? false) {
stdout.writeln(
'Dry run for ${publishDistributor.distributorType.name} was successful!');
} else {
stdout.writeln(
'Publishing to ${publishDistributor.distributorType.name} was successful!');
}
}