Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 /// Helper functionality for invoking Git. | 5 /// Helper functionality for invoking Git. |
| 6 library git; | 6 library git; |
| 7 | 7 |
| 8 import 'dart:async'; | 8 import 'dart:async'; |
| 9 import 'io.dart'; | 9 import 'io.dart'; |
| 10 import 'log.dart' as log; | 10 import 'log.dart' as log; |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 58 }); | 58 }); |
| 59 }).then((command) { | 59 }).then((command) { |
| 60 log.fine('Determined git command $command.'); | 60 log.fine('Determined git command $command.'); |
| 61 _gitCommandCache = command; | 61 _gitCommandCache = command; |
| 62 return command; | 62 return command; |
| 63 }); | 63 }); |
| 64 } | 64 } |
| 65 | 65 |
| 66 /// Checks whether [command] is the Git command for this computer. | 66 /// Checks whether [command] is the Git command for this computer. |
| 67 Future<bool> _tryGitCommand(String command) { | 67 Future<bool> _tryGitCommand(String command) { |
| 68 var completer = new Completer<bool>(); | |
| 69 | |
| 70 // If "git --version" prints something familiar, git is working. | 68 // If "git --version" prints something familiar, git is working. |
| 71 var future = runProcess(command, ["--version"]); | 69 return runProcess(command, ["--version"]).then((results) { |
| 72 | 70 var regexp = new RegExp("^git version"); |
| 73 future | 71 return results.stdout.length == 1 && regexp.hasMatch(results.stdout[0]); |
| 74 .then((results) { | 72 }).catchError((err) { |
| 75 var regex = new RegExp("^git version"); | 73 // If the process failed, they probably don't have it. |
| 76 completer.complete(results.stdout.length == 1 && | 74 return false; |
| 77 regex.hasMatch(results.stdout[0])); | 75 }); |
|
Bob Nystrom
2013/01/09 16:49:23
Much nicer!
| |
| 78 }) | |
| 79 .catchError((err) { | |
| 80 // If the process failed, they probably don't have it. | |
| 81 completer.complete(false); | |
| 82 }); | |
| 83 | |
| 84 return completer.future; | |
| 85 } | 76 } |
| OLD | NEW |