6 GOBIN_REAL="${HOME}/.local/opt/go-bin-v${WEBI_VERSION}"
8 # The package is 'golang', but the command is 'go'
11 # NOTE: pkg_* variables can be defined here
13 # pkg_src, pkg_src_bin, pkg_src_cmd
14 # pkg_dst, pkg_dst_bin, pkg_dst_cmd
16 # Their defaults are defined in _webi/template.sh at https://github.com/webinstall/packages
18 pkg_get_current_version() {
19 # 'go version' has output in this format:
20 # go version go1.14.2 darwin/amd64
21 # This trims it down to just the version number:
23 go version 2> /dev/null |
29 pkg_format_cmd_version() {
30 # 'go v1.14.0' will be 'go1.14'
31 my_version=$(echo "$1" | sed 's:\.0::g')
32 echo "${pkg_cmd_name}${my_version}"
36 # 'pkg_dst' will default to $HOME/.local/opt/go
37 # 'pkg_src' will be the installed version, such as to $HOME/.local/opt/go-v1.14.2
39 ln -s "$pkg_src" "$pkg_dst"
41 # Go has a special $GOBIN
43 # 'GOBIN' is set above to "${HOME}/go"
44 # 'GOBIN_REAL' will be "${HOME}/.local/opt/go-bin-v${WEBI_VERSION}"
46 mkdir -p "$GOBIN_REAL/bin"
47 ln -s "$GOBIN_REAL" "$GOBIN"
53 # web_path_add is defined in _webi/template.sh at https://github.com/webinstall/packages
55 # "$HOME/.local/opt/go"
56 webi_path_add "$pkg_dst_bin"
57 webi_path_add "$GOBIN/bin"
60 echo "Building go language tools..."
63 # See https://pkg.go.dev/mod/golang.org/x/tools?tab=packages
66 # note: we intend a lexical comparison, so this is correct
67 #shellcheck disable=SC2072
68 if [[ ${WEBI_VERSION} < "1.16" ]]; then
74 "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/godoc@latest > /dev/null #2>/dev/null
78 "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/gopls@latest > /dev/null #2>/dev/null
82 "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/guru@latest > /dev/null #2>/dev/null
86 "$pkg_dst_cmd" "${my_install}" golang.org/x/lint/golint@latest > /dev/null #2>/dev/null
90 "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/goimports@latest > /dev/null #2>/dev/null
94 "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/gomvpkg@latest > /dev/null #2>/dev/null
98 "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/gorename@latest > /dev/null #2>/dev/null
102 "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/gotype@latest > /dev/null #2>/dev/null
106 "$pkg_dst_cmd" "${my_install}" golang.org/x/tools/cmd/stringer@latest > /dev/null #2>/dev/null
112 echo "Installed 'go v$WEBI_VERSION' to ~/.local/opt/go"
113 # note: literal $HOME on purpose
114 #shellcheck disable=SC2016
115 echo 'Installed go "x" tools to GOBIN=$HOME/go/bin'