X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;f=golang%2Finstall.bash;h=fa97d207800cb9846adbfdf263fe06efe005ee1d;hb=969df21e47c4d8312925638739a23eef0c349e1c;hp=422b0ebf4b1d70c0c4a8f074c5effbc6feeda7ff;hpb=1ea720c77451650f09543626634d86f1be65f441;p=webi-installers%2F.git diff --git a/golang/install.bash b/golang/install.bash index 422b0eb..fa97d20 100644 --- a/golang/install.bash +++ b/golang/install.bash @@ -43,8 +43,8 @@ pkg_cmd_name="go" # NOTE: pkg_* variables can be defined here # pkg_cmd_name -# pkg_new_opt, pkg_new_bin, pkg_new_cmd -# pkg_common_opt, pkg_common_bin, pkg_common_cmd +# pkg_src, pkg_src_bin, pkg_src_cmd +# pkg_dst, pkg_dst_bin, pkg_dst_cmd # # Their defaults are defined in webi/template.bash at https://github.com/webinstall/packages @@ -53,21 +53,27 @@ pkg_get_current_version() { # go version go1.14.2 darwin/amd64 # This trims it down to just the version number: # 1.14.2 - echo "$(go version | cut -d' ' -f3 | sed 's:go::')" + echo "$(go version 2>/dev/null | head -n 1 | cut -d' ' -f3 | sed 's:go::')" } -pkg_link_new_version() { - # 'pkg_common_opt' will default to $HOME/.local/opt/go - # 'pkg_new_opt' will be the installed version, such as to $HOME/.local/opt/go-v1.14.2 - rm -rf "$pkg_common_opt" - ln -s "$pkg_new_opt" "$pkg_common_opt" +pkg_format_cmd_version() { + # 'go v1.14.0' will be 'go1.14' + my_version=$(echo "$1" | sed 's:\.0::g') + echo "${pkg_cmd_name}${my_version}" +} + +pkg_link_src_dst() { + # 'pkg_dst' will default to $HOME/.local/opt/go + # 'pkg_src' will be the installed version, such as to $HOME/.local/opt/go-v1.14.2 + rm -rf "$pkg_dst" + ln -s "$pkg_src" "$pkg_dst" # Go has a special $GOBIN # 'GOBIN' is set above to "${HOME}/go" # 'GOBIN_REAL' will be "${HOME}/.local/opt/go-bin-v${WEBI_VERSION}" rm -rf "$GOBIN" - mkdir -p "$GOBIN_REAL" + mkdir -p "$GOBIN_REAL/bin" ln -s "$GOBIN_REAL" "$GOBIN" } @@ -91,29 +97,30 @@ pkg_install() { pushd "$WEBI_TMP" 2>&1 >/dev/null # remove the versioned folder, just in case it's there with junk - rm -rf "$pkg_new_opt" + rm -rf "$pkg_src" # rename the entire extracted folder to the new location # (this will be "$HOME/.local/opt/go-v$WEBI_VERSION" by default) - mv ./go* "$pkg_new_opt" + mv ./"$pkg_cmd_name"* "$pkg_src" popd 2>&1 >/dev/null } pkg_post_install() { - pkg_link_new_version + pkg_link_src_dst # web_path_add is defined in webi/template.bash at https://github.com/webinstall/packages # Updates PATH with # "$HOME/.local/opt/go" - webi_path_add "$pkg_common_bin" - webi_path_add "$GOBIN" + webi_path_add "$pkg_dst_bin" + webi_path_add "$GOBIN/bin" # Install x go - "$pkg_common_cmd" get golang.org/x/tools/cmd/goimports > /dev/null 2>/dev/null - "$pkg_common_cmd" get golang.org/x/tools/cmd/gorename > /dev/null 2>/dev/null - "$pkg_common_cmd" get golang.org/x/tools/cmd/gotype > /dev/null 2>/dev/null - "$pkg_common_cmd" get golang.org/x/tools/cmd/stringer > /dev/null 2>/dev/null + echo "Installing go extended tools (goimports, gorename, etc)" + "$pkg_dst_cmd" get golang.org/x/tools/cmd/goimports > /dev/null 2>/dev/null + "$pkg_dst_cmd" get golang.org/x/tools/cmd/gorename > /dev/null 2>/dev/null + "$pkg_dst_cmd" get golang.org/x/tools/cmd/gotype > /dev/null 2>/dev/null + "$pkg_dst_cmd" get golang.org/x/tools/cmd/stringer > /dev/null 2>/dev/null } pkg_post_install_message() {