Commit 1b56cb79 authored by Kevin Moore's avatar Kevin Moore Committed by GitHub

Add --version-json to flutter CLI (#10538)

closes https://github.com/flutter/flutter/issues/10534
parent 3a23419d
......@@ -3,6 +3,7 @@
// found in the LICENSE file.
import 'dart:async';
import 'dart:convert';
import 'package:args/args.dart';
import 'package:args/command_runner.dart';
......@@ -59,6 +60,9 @@ class FlutterCommandRunner extends CommandRunner<Null> {
argParser.addFlag('version',
negatable: false,
help: 'Reports the version of this tool.');
argParser.addFlag('json',
negatable: false,
hide: true);
argParser.addFlag('color',
negatable: true,
hide: !verboseHelp,
......@@ -255,10 +259,21 @@ class FlutterCommandRunner extends CommandRunner<Null> {
if (globalResults['version']) {
flutterUsage.sendCommand('version');
printStatus(FlutterVersion.instance.toString());
String status;
if (globalResults['json']) {
status = const JsonEncoder.withIndent(' ').convert(FlutterVersion.instance.toJson());
} else {
status = FlutterVersion.instance.toString();
}
printStatus(status);
return;
}
if (globalResults['json']) {
printError('The --json flag is only valid with the --version flag.');
throw new ProcessExit(2);
}
await super.runCommand(globalResults);
}
......
......@@ -82,6 +82,15 @@ class FlutterVersion {
return '$flutterText\n$frameworkText\n$engineText\n$toolsText';
}
Map<String, Object> toJson() => <String, Object>{
'channel': channel,
'repositoryUrl': repositoryUrl ?? 'unknown source',
'frameworkRevision': frameworkRevision,
'frameworkCommitDate': frameworkCommitDate,
'engineRevision': engineRevision,
'dartSdkVersion': dartSdkVersion,
};
/// A date String describing the last framework commit.
String get frameworkCommitDate => _latestGitCommitDate();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment