several fixes to the doctor command
diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart
index 388cc12..fd1db37 100644
--- a/packages/flutter_tools/lib/src/ios/mac.dart
+++ b/packages/flutter_tools/lib/src/ios/mac.dart
@@ -22,45 +22,49 @@
const int kXcodeRequiredVersionMinor = 0;
class XCode {
+ XCode() {
+ _eulaSigned = false;
+
+ try {
+ _xcodeSelectPath = runSync(<String>['xcode-select', '--print-path']);
+ _isInstalled = true;
+
+ _xcodeVersionText = runSync(<String>['xcodebuild', '-version']).replaceAll('\n', ', ');
+
+ try {
+ printTrace('xcrun 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) {
+ }
+ } catch (error) {
+ _isInstalled = false;
+ }
+ }
+
/// Returns [XCode] active in the current app context.
static XCode get instance => context[XCode] ?? (context[XCode] = new XCode());
bool get isInstalledAndMeetsVersionCheck => isInstalled && xcodeVersionSatisfactory;
+ String _xcodeSelectPath;
+ String get xcodeSelectPath => _xcodeSelectPath;
+
bool _isInstalled;
- bool get isInstalled {
- if (_isInstalled != null) {
- return _isInstalled;
- }
+ bool get isInstalled => _isInstalled;
- _isInstalled = exitsHappy(<String>['xcode-select', '--print-path']);
- return _isInstalled;
- }
-
+ bool _eulaSigned;
/// Has the EULA been signed?
- bool get eulaSigned {
- if (!isInstalled)
- return false;
-
- try {
- ProcessResult result = Process.runSync('/usr/bin/xcrun', <String>['clang']);
- if (result.stdout != null && result.stdout.contains('license'))
- return false;
- if (result.stderr != null && result.stderr.contains('license'))
- return false;
- return true;
- } catch (error) {
- return false;
- }
- }
+ bool get eulaSigned => _eulaSigned;
String _xcodeVersionText;
-
- String get xcodeVersionText {
- if (_xcodeVersionText == null)
- _xcodeVersionText = runSync(<String>['xcodebuild', '-version']).replaceAll('\n', ', ');
- return _xcodeVersionText;
- }
+ String get xcodeVersionText => _xcodeVersionText;
bool get xcodeVersionSatisfactory {
RegExp regex = new RegExp(r'Xcode ([0-9.]+)');