mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Add --version-json to flutter CLI (#10538)
closes https://github.com/flutter/flutter/issues/10534
This commit is contained in:
parent
3a23419d84
commit
1b56cb790c
@ -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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user