Merge pull request #2964 from devoncarew/fix_doctor_exception

fix an exception from flutter doctor
This commit is contained in:
Devon Carew 2016-03-28 16:47:11 -07:00
commit 1826fb95e6
2 changed files with 22 additions and 15 deletions

View File

@ -140,7 +140,7 @@ String _doctorText() {
appContext.runInZone(() => doctor.diagnose());
return logger.statusText;
} catch (error) {
return '';
} catch (error, trace) {
return 'encountered exception: $error\n$trace';
}
}

View File

@ -31,17 +31,21 @@ class XCode {
_xcodeVersionText = runSync(<String>['xcodebuild', '-version']).replaceAll('\n', ', ');
try {
printTrace('xcrun clang');
if (!xcodeVersionRegex.hasMatch(_xcodeVersionText)) {
_isInstalled = false;
} else {
try {
printTrace('xcrun clang');
ProcessResult result = Process.runSync('/usr/bin/xcrun', <String>['clang']);
ProcessResult result = Process.runSync('/usr/bin/xcrun', <String>['clang']);
if (result.stdout != null && result.stdout.contains('license'))
_eulaSigned = false;
else if (result.stderr != null && result.stderr.contains('license'))
_eulaSigned = false;
else
_eulaSigned = true;
} catch (error) {
if (result.stdout != null && result.stdout.contains('license'))
_eulaSigned = false;
else if (result.stderr != null && result.stderr.contains('license'))
_eulaSigned = false;
else
_eulaSigned = true;
} catch (error) {
}
}
} catch (error) {
_isInstalled = false;
@ -66,10 +70,13 @@ class XCode {
String _xcodeVersionText;
String get xcodeVersionText => _xcodeVersionText;
bool get xcodeVersionSatisfactory {
RegExp regex = new RegExp(r'Xcode ([0-9.]+)');
final RegExp xcodeVersionRegex = new RegExp(r'Xcode ([0-9.]+)');
String version = regex.firstMatch(xcodeVersionText).group(1);
bool get xcodeVersionSatisfactory {
if (!xcodeVersionRegex.hasMatch(xcodeVersionText))
return false;
String version = xcodeVersionRegex.firstMatch(xcodeVersionText).group(1);
List<String> components = version.split('.');
int major = int.parse(components[0]);