diff --git a/tool/bin/devtools_tool.dart b/tool/bin/devtools_tool.dart index eb91a085aff..57db61c2c65 100755 --- a/tool/bin/devtools_tool.dart +++ b/tool/bin/devtools_tool.dart @@ -6,11 +6,14 @@ import 'dart:io'; import 'package:args/command_runner.dart'; import 'package:devtools_tool/devtools_command_runner.dart'; +import 'package:io/io.dart'; void main(List args) async { final runner = DevToolsCommandRunner(); try { - final dynamic result = await runner.run(args); + final dynamic result = + await runner.run(args).whenComplete(sharedStdIn.terminate); + exit(result is int ? result : 0); } catch (e) { if (e is UsageException) { diff --git a/tool/lib/devtools_command_runner.dart b/tool/lib/devtools_command_runner.dart index 29afd0eca75..51a6370a1cb 100644 --- a/tool/lib/devtools_command_runner.dart +++ b/tool/lib/devtools_command_runner.dart @@ -2,13 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:args/args.dart'; import 'package:args/command_runner.dart'; import 'package:devtools_tool/commands/fix_goldens.dart'; import 'package:devtools_tool/commands/generate_code.dart'; import 'package:devtools_tool/commands/sync.dart'; import 'package:devtools_tool/commands/update_flutter_sdk.dart'; -import 'package:io/io.dart'; import 'commands/analyze.dart'; import 'commands/list.dart'; @@ -35,14 +33,4 @@ class DevToolsCommandRunner extends CommandRunner { addCommand(UpdateDevToolsVersionCommand()); addCommand(UpdateFlutterSdkCommand()); } - - @override - Future runCommand(ArgResults topLevelResults) async { - try { - return await super.runCommand(topLevelResults); - } finally { - // Closes stdin for the entire program. - await sharedStdIn.terminate(); - } - } }