summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-12-18 02:54:14 -0600
committerJeff Carr <[email protected]>2024-12-18 02:54:14 -0600
commit6bb2b972b4dff09d55c77341ccc06afb30a5026f (patch)
tree7e40e074a085651574ac4c1c517f570407cca9f2
parent84c25d74da64460dc9c92cc05f78d288d3f8f59f (diff)
fix path. add notes to help install protoc
-rw-r--r--main.go5
-rw-r--r--protoc.go31
2 files changed, 34 insertions, 2 deletions
diff --git a/main.go b/main.go
index 064953a..b52f579 100644
--- a/main.go
+++ b/main.go
@@ -6,6 +6,7 @@ package main
import (
"errors"
"os"
+ "path/filepath"
"strings"
"github.com/alexflint/go-arg"
@@ -51,8 +52,10 @@ func main() {
os.Exit(-1)
}
+ // todo, look for go.work files
if argv.GoSrc == "" {
- argv.GoSrc = "/home/jcarr/go/src"
+ homeDir, _ := os.UserHomeDir()
+ argv.GoSrc = filepath.Join(homeDir, "go/src")
}
if argv.GoPath == "" {
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)
+}