blob: 35ab59b849516c9aa0598b2ebd897d6abe0b0e30 [file] [log] [blame]
// Copyright 2020 The Flutter Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.
import 'package:args/args.dart';
import 'package:args/command_runner.dart';
import 'package:devtools_tool/commands/build.dart';
import 'package:devtools_tool/commands/fix_goldens.dart';
import 'package:devtools_tool/commands/generate_code.dart';
import 'package:devtools_tool/commands/release_notes_helper.dart';
import 'package:devtools_tool/commands/run.dart';
import 'package:devtools_tool/commands/serve.dart';
import 'package:devtools_tool/commands/sync.dart';
import 'package:devtools_tool/commands/tag_version.dart';
import 'package:devtools_tool/commands/update_flutter_sdk.dart';
import 'package:devtools_tool/commands/update_perfetto.dart';
import 'package:devtools_tool/model.dart';
import 'commands/analyze.dart';
import 'commands/list.dart';
import 'commands/pub_get.dart';
import 'commands/release_helper.dart';
import 'commands/repo_check.dart';
import 'commands/rollback.dart';
import 'commands/update_dart_sdk_deps.dart';
import 'commands/update_version.dart';
const _flutterFromPathFlag = 'flutter-from-path';
class DevToolsCommandRunner extends CommandRunner {
DevToolsCommandRunner()
: super('dt', 'A repo management tool for DevTools.') {
addCommand(AnalyzeCommand());
addCommand(BuildCommand());
addCommand(FixGoldensCommand());
addCommand(GenerateCodeCommand());
addCommand(ListCommand());
addCommand(PubGetCommand());
addCommand(ReleaseHelperCommand());
addCommand(ReleaseNotesCommand());
addCommand(RepoCheckCommand());
addCommand(RollbackCommand());
addCommand(RunCommand());
addCommand(ServeCommand());
addCommand(SyncCommand());
addCommand(TagVersionCommand());
addCommand(UpdateDartSdkDepsCommand());
addCommand(UpdateDevToolsVersionCommand());
addCommand(UpdateFlutterSdkCommand());
addCommand(UpdatePerfettoCommand());
argParser.addFlag(
_flutterFromPathFlag,
abbr: 'p',
negatable: false,
help:
'Use the Flutter SDK on PATH for any `flutter`, `dart` and '
'`dt` commands spawned by this process, instead of the '
'Flutter SDK from tool/flutter-sdk which is used by default.',
);
}
@override
Future<void> runCommand(ArgResults topLevelResults) {
if (topLevelResults[_flutterFromPathFlag]) {
FlutterSdk.useFromPathEnvironmentVariable();
} else {
FlutterSdk.useFromCurrentVm();
}
print('Using Flutter SDK from ${FlutterSdk.current.sdkPath}');
return super.runCommand(topLevelResults);
}
}