blob: 4183865a2aeccc5abd8ddd04c4766f4f9016aa54 [file] [log] [blame]
// Copyright 2024 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/command_runner.dart';
import 'package:devtools_tool/commands/shared.dart';
import 'package:io/io.dart';
import '../utils.dart';
/// Runs the DevTools web app in debug mode with `flutter run` and connects it
/// to a locally running instance of the DevTools server.
///
/// To open a debug connection to the DevTools server, pass the `--debug-server`
/// flag to this command.
class RunCommand extends Command {
RunCommand() {
argParser
..addDebugServerFlag()
..addServeWithSdkOption();
}
@override
String get name => 'run';
@override
String get description =>
'Runs the DevTools web app in debug mode using "flutter run" and connects'
' it to a locally running instance of the DevTools server.';
@override
Future run() async {
final processManager = ProcessManager();
final process = await processManager.runProcess(
CliCommand.tool([
'serve',
SharedCommandArgs.runApp.asArg(),
...argResults!.arguments,
]),
);
if (process.exitCode == 1) {
throw Exception('Something went wrong while running `dt run`.');
}
}
}