5 GOBIN_REAL="${HOME}/.local/opt/go-bin-v${WEBI_VERSION}"
7 # The package is 'golang', but the command is 'go'
10 # NOTE: pkg_* variables can be defined here
12 # pkg_src, pkg_src_bin, pkg_src_cmd
13 # pkg_dst, pkg_dst_bin, pkg_dst_cmd
15 # Their defaults are defined in _webi/template.sh at https://github.com/webinstall/packages
17 pkg_get_current_version() {
18 # 'go version' has output in this format:
19 # go version go1.14.2 darwin/amd64
20 # This trims it down to just the version number:
22 echo "$(go version 2> /dev/null | head -n 1 | cut -d' ' -f3 | sed 's:go::')"
25 pkg_format_cmd_version() {
26 # 'go v1.14.0' will be 'go1.14'
27 my_version=$(echo "$1" | sed 's:\.0::g')
28 echo "${pkg_cmd_name}${my_version}"
32 # 'pkg_dst' will default to $HOME/.local/opt/go
33 # 'pkg_src' will be the installed version, such as to $HOME/.local/opt/go-v1.14.2
35 ln -s "$pkg_src" "$pkg_dst"
37 # Go has a special $GOBIN
39 # 'GOBIN' is set above to "${HOME}/go"
40 # 'GOBIN_REAL' will be "${HOME}/.local/opt/go-bin-v${WEBI_VERSION}"
42 mkdir -p "$GOBIN_REAL/bin"
43 ln -s "$GOBIN_REAL" "$GOBIN"
49 # web_path_add is defined in _webi/template.sh at https://github.com/webinstall/packages
51 # "$HOME/.local/opt/go"
52 webi_path_add "$pkg_dst_bin"
53 webi_path_add "$GOBIN/bin"
56 echo "Building go language tools..."
59 # See https://pkg.go.dev/mod/golang.org/x/tools?tab=packages
63 "$pkg_dst_cmd" get golang.org/x/tools/cmd/godoc@latest > /dev/null #2>/dev/null
67 "$pkg_dst_cmd" get golang.org/x/tools/gopls@latest > /dev/null #2>/dev/null
71 "$pkg_dst_cmd" get golang.org/x/tools/cmd/guru@latest > /dev/null #2>/dev/null
75 "$pkg_dst_cmd" get golang.org/x/lint/golint@latest > /dev/null #2>/dev/null
79 "$pkg_dst_cmd" get golang.org/x/tools/cmd/goimports@latest > /dev/null #2>/dev/null
83 "$pkg_dst_cmd" get golang.org/x/tools/cmd/gomvpkg@latest > /dev/null #2>/dev/null
87 "$pkg_dst_cmd" get golang.org/x/tools/cmd/gorename@latest > /dev/null #2>/dev/null
91 "$pkg_dst_cmd" get golang.org/x/tools/cmd/gotype@latest > /dev/null #2>/dev/null
95 "$pkg_dst_cmd" get golang.org/x/tools/cmd/stringer@latest > /dev/null #2>/dev/null
101 echo "Installed 'go' v$WEBI_VERSION to ~/.local/opt/go"
102 echo "Installed go 'x' tools to GOBIN=\$HOME/go/bin"