From 06564368bc07e90e721c26cb074d45e3a8ab3d6b Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 12 Feb 2025 15:10:50 -0600 Subject: first attempt to install protoc on linux --- human.go | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) (limited to 'human.go') diff --git a/human.go b/human.go index 61da744..73c7089 100644 --- a/human.go +++ b/human.go @@ -4,19 +4,44 @@ import ( "fmt" "os" "os/exec" + "runtime" "go.wit.com/log" ) func CheckProtoc() bool { - if checkCmdSimple("protoc") { + if !checkCmdSimple("protoc") { userInstructions() - log.Sleep(2) + switch runtime.GOOS { + case "linux": + linuxInstall("protoc") + case "macos": + log.Info("todo: print instructions here for installing protoc on macos. brew install?") + case "windows": + log.Info("todo: print instructions here for installing protoc on windows") + default: + log.Info("todo: print instructions here for installing protoc on", runtime.GOOS) + } + return false + } + if !checkCmdSimple("protoc") { return false } - if checkCmdSimple("protoc-gen-go") { + + if !checkCmdSimple("protoc-gen-go") { userInstructions() - log.Sleep(2) + switch runtime.GOOS { + case "linux": + linuxInstall("protoc-gen-go") + case "macos": + log.Info("todo: print instructions here for installing protoc on macos. brew install?") + case "windows": + log.Info("todo: print instructions here for installing protoc on windows") + default: + log.Info("todo: print instructions here for installing protoc on", runtime.GOOS) + } + } + if !checkCmdSimple("protoc-gen-go") { return false } return true @@ -43,6 +68,8 @@ func checkCmd(cmd string) (string, error) { return path, err } +/* + func oldcheckCmd(cmd string) { // path, err := exec.LookPath(cmd) _, err := exec.LookPath(cmd) @@ -54,6 +81,7 @@ func oldcheckCmd(cmd string) { // fmt.Printf("%s is available at %s\n", cmd, path) } } +*/ // todo: figure out how to determine, in a package, what the program name is func okExit(s string) { -- cgit v1.2.3