| // Copyright 2015 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 'dart:async'; | |
| import 'runner.dart' as runner; | |
| import 'src/base/context.dart'; | |
| // The build_runner code generation is provided here to make it easier to | |
| // avoid introducing the dependency into google3. Not all build* packages | |
| // are synced internally. | |
| import 'src/build_runner/build_runner.dart'; | |
| import 'src/codegen.dart'; | |
| import 'src/commands/analyze.dart'; | |
| import 'src/commands/attach.dart'; | |
| import 'src/commands/build.dart'; | |
| import 'src/commands/channel.dart'; | |
| import 'src/commands/clean.dart'; | |
| import 'src/commands/config.dart'; | |
| import 'src/commands/create.dart'; | |
| import 'src/commands/daemon.dart'; | |
| import 'src/commands/devices.dart'; | |
| import 'src/commands/doctor.dart'; | |
| import 'src/commands/drive.dart'; | |
| import 'src/commands/emulators.dart'; | |
| import 'src/commands/format.dart'; | |
| import 'src/commands/generate.dart'; | |
| import 'src/commands/ide_config.dart'; | |
| import 'src/commands/inject_plugins.dart'; | |
| import 'src/commands/install.dart'; | |
| import 'src/commands/logs.dart'; | |
| import 'src/commands/make_host_app_editable.dart'; | |
| import 'src/commands/packages.dart'; | |
| import 'src/commands/precache.dart'; | |
| import 'src/commands/run.dart'; | |
| import 'src/commands/screenshot.dart'; | |
| import 'src/commands/shell_completion.dart'; | |
| import 'src/commands/stop.dart'; | |
| import 'src/commands/test.dart'; | |
| import 'src/commands/trace.dart'; | |
| import 'src/commands/train.dart'; | |
| import 'src/commands/update_packages.dart'; | |
| import 'src/commands/upgrade.dart'; | |
| import 'src/commands/version.dart'; | |
| import 'src/runner/flutter_command.dart'; | |
| /// Main entry point for commands. | |
| /// | |
| /// This function is intended to be used from the `flutter` command line tool. | |
| Future<void> main(List<String> args) async { | |
| final bool verbose = args.contains('-v') || args.contains('--verbose'); | |
| final bool doctor = (args.isNotEmpty && args.first == 'doctor') || | |
| (args.length == 2 && verbose && args.last == 'doctor'); | |
| final bool help = args.contains('-h') || args.contains('--help') || | |
| (args.isNotEmpty && args.first == 'help') || (args.length == 1 && verbose); | |
| final bool muteCommandLogging = help || doctor; | |
| final bool verboseHelp = help && verbose; | |
| await runner.run(args, <FlutterCommand>[ | |
| AnalyzeCommand(verboseHelp: verboseHelp), | |
| AttachCommand(verboseHelp: verboseHelp), | |
| BuildCommand(verboseHelp: verboseHelp), | |
| ChannelCommand(verboseHelp: verboseHelp), | |
| CleanCommand(), | |
| ConfigCommand(verboseHelp: verboseHelp), | |
| CreateCommand(), | |
| DaemonCommand(hidden: !verboseHelp), | |
| DevicesCommand(), | |
| DoctorCommand(verbose: verbose), | |
| DriveCommand(), | |
| EmulatorsCommand(), | |
| FormatCommand(), | |
| GenerateCommand(), | |
| IdeConfigCommand(hidden: !verboseHelp), | |
| InjectPluginsCommand(hidden: !verboseHelp), | |
| InstallCommand(), | |
| LogsCommand(), | |
| MakeHostAppEditableCommand(), | |
| PackagesCommand(), | |
| PrecacheCommand(), | |
| RunCommand(verboseHelp: verboseHelp), | |
| ScreenshotCommand(), | |
| ShellCompletionCommand(), | |
| StopCommand(), | |
| TestCommand(verboseHelp: verboseHelp), | |
| TraceCommand(), | |
| TrainingCommand(), | |
| UpdatePackagesCommand(hidden: !verboseHelp), | |
| UpgradeCommand(), | |
| VersionCommand(), | |
| ], verbose: verbose, | |
| muteCommandLogging: muteCommandLogging, | |
| verboseHelp: verboseHelp, | |
| overrides: <Type, Generator>{ | |
| // The build runner instance is not supported in google3 because | |
| // the build runner packages are not synced internally. | |
| CodeGenerator: () => const BuildRunner(), | |
| }); | |
| } |