// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import '../base/common.dart'; import '../cache.dart'; import '../codegen.dart'; import '../project.dart'; import '../runner/flutter_command.dart'; class GenerateCommand extends FlutterCommand { GenerateCommand() { usesTargetOption(); } @override String get description => 'run code generators.'; @override String get name => 'generate'; @override bool get hidden => true; @override Future<Set<DevelopmentArtifact>> get requiredArtifacts async => const <DevelopmentArtifact>{ DevelopmentArtifact.universal, }; @override Future<FlutterCommandResult> runCommand() async { Cache.releaseLockEarly(); final FlutterProject flutterProject = FlutterProject.current(); final CodegenDaemon codegenDaemon = await codeGenerator.daemon(flutterProject); codegenDaemon.startBuild(); await for (CodegenStatus codegenStatus in codegenDaemon.buildResults) { if (codegenStatus == CodegenStatus.Failed) { throwToolExit('Code generation failed'); } if (codegenStatus ==CodegenStatus.Succeeded) { break; } } return null; } }