增加获取GO环境变量以及格式化的方法
This commit is contained in:
parent
65ea58229e
commit
dad4d5728d
55
define/golang.go
Normal file
55
define/golang.go
Normal file
@ -0,0 +1,55 @@
|
||||
// Package define ...
|
||||
//
|
||||
// Description : define ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2022-06-26 19:16
|
||||
package define
|
||||
|
||||
// GoENV go 环境变量
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 19:16 2022/6/26
|
||||
type GoENV struct {
|
||||
GO111MODULE string `json:"GO111MODULE"`
|
||||
GOARCH string `json:"GOARCH"`
|
||||
GOBIN string `json:"GOBIN"`
|
||||
GOCACHE string `json:"GOCACHE"`
|
||||
GOENV string `json:"GOENV"`
|
||||
GOEXE string `json:"GOEXE"`
|
||||
GOEXPERIMENT string `json:"GOEXPERIMENT"`
|
||||
GOFLAGS string `json:"GOFLAGS"`
|
||||
GOHOSTARCH string `json:"GOHOSTARCH"`
|
||||
GOHOSTOS string `json:"GOHOSTOS"`
|
||||
GOINSECURE string `json:"GOINSECURE"`
|
||||
GOMODCACHE string `json:"GOMODCACHE"`
|
||||
GONOPROXY string `json:"GONOPROXY"`
|
||||
GONOSUMDB string `json:"GONOSUMDB"`
|
||||
GOOS string `json:"GOOS"`
|
||||
GOPATH string `json:"GOPATH"`
|
||||
GOPRIVATE string `json:"GOPRIVATE"`
|
||||
GOPROXY string `json:"GOPROXY"`
|
||||
GOROOT string `json:"GOROOT"`
|
||||
GOSUMDB string `json:"GOSUMDB"`
|
||||
GOTMPDIR string `json:"GOTMPDIR"`
|
||||
GOTOOLDIR string `json:"GOTOOLDIR"`
|
||||
GOVCS string `json:"GOVCS"`
|
||||
GOVERSION string `json:"GOVERSION"`
|
||||
GCCGO string `json:"GCCGO"`
|
||||
GOAMD64 string `json:"GOAMD64"`
|
||||
AR string `json:"AR"`
|
||||
CC string `json:"CC"`
|
||||
CXX string `json:"CXX"`
|
||||
CGO_ENABLED string `json:"CGO_ENABLED"`
|
||||
GOMOD string `json:"GOMOD"`
|
||||
GOWORK string `json:"GOWORK"`
|
||||
CGO_CFLAGS string `json:"CGO_CFLAGS"`
|
||||
CGO_CPPFLAGS string `json:"CGO_CPPFLAGS"`
|
||||
CGO_CXXFLAGS string `json:"CGO_CXXFLAGS"`
|
||||
CGO_FFLAGS string `json:"CGO_FFLAGS"`
|
||||
CGO_LDFLAGS string `json:"CGO_LDFLAGS"`
|
||||
PKG_CONFIG string `json:"PKG_CONFIG"`
|
||||
GOGCCFLAGS string `json:"GOGCCFLAGS"`
|
||||
}
|
45
golang.go
45
golang.go
@ -8,6 +8,7 @@
|
||||
package command
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
@ -136,3 +137,47 @@ func (g *golang) GetRecommendGoProxyList() []string {
|
||||
func (g *golang) FormatCode() *define.Result {
|
||||
return Execute(g.workDir, "gofmt", []string{"-w", "-l", "./*"})
|
||||
}
|
||||
|
||||
// GetGoENV 获取环境变量
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 19:25 2022/6/26
|
||||
func (g *golang) GetGoENV() define.GoENV {
|
||||
result := Execute(g.workDir, "go", []string{"env"})
|
||||
return g.FormatGoENV(string(result.Output))
|
||||
}
|
||||
|
||||
// FormatGoENV 格式化环境变量
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 19:26 2022/6/26
|
||||
func (g *golang) FormatGoENV(sourceENV string) define.GoENV {
|
||||
// fmt.Println(sourceENV)
|
||||
envArr := strings.Split(sourceENV, "\n")
|
||||
envTable := make(map[string]string)
|
||||
for _, item := range envArr {
|
||||
if len(item) == 0 {
|
||||
continue
|
||||
}
|
||||
pair := strings.Split(item, "=")
|
||||
if len(pair) == 0 {
|
||||
continue
|
||||
}
|
||||
if len(pair) == 1 {
|
||||
envTable[pair[0]] = ""
|
||||
continue
|
||||
}
|
||||
|
||||
envTable[pair[0]] = strings.TrimRight(
|
||||
strings.TrimLeft(
|
||||
strings.Join(pair[1:], "="), "\"",
|
||||
), "\"",
|
||||
)
|
||||
}
|
||||
byteData, _ := json.Marshal(envTable)
|
||||
var envResult define.GoENV
|
||||
_ = json.Unmarshal(byteData, &envResult)
|
||||
return envResult
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user