| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import '../artifacts.dart'; |
| import '../base/process.dart'; |
| |
| String getVersion(String flutterRoot) { |
| String upstream = runSync([ |
| 'git', 'rev-parse', '--abbrev-ref', '--symbolic', '@{u}' |
| ], workingDirectory: flutterRoot).trim(); |
| String repository = '<unknown>'; |
| int slash = upstream.indexOf('/'); |
| if (slash != -1) { |
| String remote = upstream.substring(0, slash); |
| repository = runSync([ |
| 'git', 'ls-remote', '--get-url', remote |
| ], workingDirectory: flutterRoot).trim(); |
| upstream = upstream.substring(slash + 1); |
| } |
| String revision = runSync([ |
| 'git', 'log', '-n', '1', '--pretty=format:%H (%ar)' |
| ], workingDirectory: flutterRoot).trim(); |
| |
| String version = 'Flutter from $repository (on $upstream)\nflutter revision: $revision'; |
| |
| String engineRevision = ArtifactStore.engineRevision; |
| if (engineRevision != null) |
| version += '\nengine revision : $engineRevision'; |
| |
| return version; |
| } |