summaryrefslogtreecommitdiff
path: root/protoc.go
diff options
context:
space:
mode:
Diffstat (limited to 'protoc.go')
-rw-r--r--protoc.go31
1 files changed, 30 insertions, 1 deletions
diff --git a/protoc.go b/protoc.go
index 53955e3..1214e7c 100644
--- a/protoc.go
+++ b/protoc.go
@@ -4,10 +4,12 @@ package main
import (
"errors"
+ "fmt"
"os"
"path/filepath"
"strings"
+ "github.com/go-cmd/cmd"
"go.wit.com/lib/gui/shell"
"go.wit.com/log"
)
@@ -88,6 +90,33 @@ func protocBuild(names map[string]string) error {
for i, s := range cmd {
log.Info("\t", i, s)
}
- shell.PathRun(argv.GoSrc, cmd)
+ return runprotoc(argv.GoSrc, cmd)
+}
+
+func runprotoc(pwd string, mycmd []string) error {
+ result := shell.PathRun(argv.GoSrc, mycmd)
+ if result.Error != nil {
+ return userNotes(result)
+ }
+ if result.Exit != 0 {
+ return userNotes(result)
+ }
return nil
}
+
+func userNotes(result cmd.Status) error {
+ log.Info("protoc failed", result.Cmd, "with", result.Exit)
+ for _, line := range result.Stdout {
+ log.Info("STDOUT:", line)
+ }
+ for _, line := range result.Stderr {
+ log.Info("STDERR:", line)
+ }
+ log.Info("This is likely because you don't have protoc and protoc-gen-go installed")
+ log.Info("")
+ log.Info("On debian, you can:")
+ log.Info(" apt install protobuf-compiler # for protoc")
+ log.Info(" apt install protoc-gen-go # for protoc-gen-go")
+ log.Info("")
+ return fmt.Errorf("protoc failed with %d %v", result.Exit, result.Error)
+}