Support default value of $GOPATH (#532)
Add support for go1.8 of blank $GOPATH
This commit is contained in:
		
				
					committed by
					
						
						Albert Nigmatzianov
					
				
			
			
				
	
			
			
			
						parent
						
							b787445794
						
					
				
				
					commit
					e5f66de850
				
			@ -18,6 +18,7 @@ import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"os/exec"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"text/template"
 | 
			
		||||
@ -31,7 +32,27 @@ func init() {
 | 
			
		||||
	envGoPath := os.Getenv("GOPATH")
 | 
			
		||||
	goPaths := filepath.SplitList(envGoPath)
 | 
			
		||||
	if len(goPaths) == 0 {
 | 
			
		||||
		er("$GOPATH is not set")
 | 
			
		||||
		// Adapted from https://github.com/Masterminds/glide/pull/798/files.
 | 
			
		||||
		// As of Go 1.8 the GOPATH is no longer required to be set. Instead there
 | 
			
		||||
		// is a default value. If there is no GOPATH check for the default value.
 | 
			
		||||
		// Note, checking the GOPATH first to avoid invoking the go toolchain if
 | 
			
		||||
		// possible.
 | 
			
		||||
 | 
			
		||||
		goExecutable := os.Getenv("COBRA_GO_EXECUTABLE")
 | 
			
		||||
		if len(goExecutable) <= 0 {
 | 
			
		||||
			goExecutable = "go"
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		out, err := exec.Command(goExecutable, "env", "GOPATH").Output()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			er(err)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		toolchainGoPath := strings.TrimSpace(string(out))
 | 
			
		||||
		goPaths = filepath.SplitList(toolchainGoPath)
 | 
			
		||||
		if len(goPaths) == 0 {
 | 
			
		||||
			er("$GOPATH is not set")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	srcPaths = make([]string, 0, len(goPaths))
 | 
			
		||||
	for _, goPath := range goPaths {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user