Merge branch 'master' into docs
diff --git a/README.md b/README.md
index ee172b5..9de89cc 100644
--- a/README.md
+++ b/README.md
@@ -22,10 +22,14 @@
$ pub global activate grinder
```
-The dart-services v2 API is defined in terms of Protobuf, which requires
-the installation of the Protobuf `protoc` compiler. Please see
-[Protocol Buffers](https://developers.google.com/protocol-buffers/)
-for detailed instalation instructions.
+The dart-services v2 API is defined in terms of Protobuf, which requires the
+installation of the Protobuf `protoc` compiler. Please see [Protocol
+Buffers](https://developers.google.com/protocol-buffers/) for detailed
+installation instructions. On macOS, you may also install with Homebrew via:
+
+```bash
+$ brew install protobuf
+```
The Dart protoc plugin is also required for the above `protoc` compiler
to generate Dart code. To install, please run:
diff --git a/tool/grind.dart b/tool/grind.dart
index d2d8bf4..a7e7fe3 100644
--- a/tool/grind.dart
+++ b/tool/grind.dart
@@ -312,10 +312,16 @@
@Task('Generate Protobuf classes')
void generateProtos() async {
- await runWithLogging(
- 'protoc',
- arguments: ['--dart_out=lib/src', 'protos/dart_services.proto'],
- );
+ try {
+ await runWithLogging(
+ 'protoc',
+ arguments: ['--dart_out=lib/src', 'protos/dart_services.proto'],
+ );
+ } catch (e) {
+ print('Error running "protoc"; make sure the Protocol Buffer compiler is '
+ 'installed (see README.md)');
+ rethrow;
+ }
// reformat generated classes so travis dart format test doesn't fail
await runWithLogging(