Merge pull request #4 from dart-lang/null_link_fix

Null link fix
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2a2d63c..7271432 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 0.0.1+1
+
+- Fix for when the dart executable can't be found by `which`.
+
 ## 0.0.1
 
 - Initial version
diff --git a/lib/cli_util.dart b/lib/cli_util.dart
index a997c43..683bef7 100644
--- a/lib/cli_util.dart
+++ b/lib/cli_util.dart
@@ -38,15 +38,17 @@
   // Try and locate the VM using 'which'.
   String executable = whichSync('dart', orElse: () => null);
 
-  // In case Dart is symlinked (e.g. homebrew on Mac) follow symbolic links.
-  Link link = new Link(executable);
-  if (link.existsSync()) {
-    executable = link.resolveSymbolicLinksSync();
-  }
+  if (executable != null) {
+    // In case Dart is symlinked (e.g. homebrew on Mac) follow symbolic links.
+    Link link = new Link(executable);
+    if (link.existsSync()) {
+      executable = link.resolveSymbolicLinksSync();
+    }
 
-  File dartVm = new File(executable);
-  Directory dir = dartVm.parent.parent;
-  if (_isSdkDir(dir)) return dir;
+    File dartVm = new File(executable);
+    Directory dir = dartVm.parent.parent;
+    if (_isSdkDir(dir)) return dir;
+  }
 
   return null;
 }
diff --git a/pubspec.yaml b/pubspec.yaml
index 0beb6cc..80f21e1 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: cli_util
-version: 0.0.1
+version: 0.0.1+1
 author: Dart Team <misc@dartlang.org>
 description: A library to help in building Dart command-line apps.
 homepage: https://github.com/dart-lang/cli_util