From 1d29af5b6ab108e7163917336653cd1cda287ec8 Mon Sep 17 00:00:00 2001 From: Viktor Alenkov Date: Tue, 27 Jun 2023 09:25:20 +0300 Subject: [PATCH] fix bug #107 --- bin/install | 64 ++++++++++++++++++++++++++-------------------------- set-env.fish | 3 ++- set-env.zsh | 2 ++ 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/bin/install b/bin/install index 2f3ad54..6cef4e5 100755 --- a/bin/install +++ b/bin/install @@ -7,23 +7,23 @@ PLUGIN_DIR="$(dirname "${BASH_SOURCE[0]}")/.." # shellcheck source=/dev/null source "$PLUGIN_DIR/lib/helpers.sh" -install_golang () { - local version="$1" - local download_path="$2" - local install_path="$3" - created_tmp="0" - - if [ -z "$download_path" ] ; then - download_path=$(mktemp -dt asdf-golang.XXXX) - created_tmp="1" - ASDF_INSTALL_VERSION="$version" ASDF_DOWNLOAD_PATH="$download_path" "$PLUGIN_DIR/bin/download" - fi - - tar -C "$install_path" -xzf "${download_path}/archive.tar.gz" - - if [ "1" = "$created_tmp" ]; then - rm -r "$download_path" - fi +install_golang() { + local version="$1" + local download_path="$2" + local install_path="$3" + created_tmp="0" + + if [ -z "$download_path" ]; then + download_path=$(mktemp -dt asdf-golang.XXXX) + created_tmp="1" + ASDF_INSTALL_VERSION="$version" ASDF_DOWNLOAD_PATH="$download_path" "$PLUGIN_DIR/bin/download" + fi + + tar -C "$install_path" -xzf "${download_path}/archive.tar.gz" + + if [ "1" = "$created_tmp" ]; then + rm -r "$download_path" + fi } install_default_go_pkgs() { @@ -33,32 +33,32 @@ install_default_go_pkgs() { if [ ! -f "$default_go_pkgs" ]; then return; fi - while read -r line; do name=$(echo "$line" | \ sed 's|\(.*\) //.*$|\1|' | \ sed -E 's|^[[:space:]]*//.*||') # the first sed is for comments after package names, the second for full line comments # Skip empty lines - if [ -z "$name" ]; then continue ; fi + if [ -z "$name" ]; then continue; fi echo -ne "\nInstalling \033[33m${name}\033[39m go pkg... " >&2 # if using go > 1.16 then use go install as the preferred donwload path if [ "$go_major_version" -ge 2 ] || [ "${go_minor_version//[!0-9]*}" -ge 16 ]; then - if [[ "$name" != *"@"* ]]; then - name="${name}@latest" - fi - - GOROOT="$ASDF_INSTALL_PATH/go" \ - GOPATH="$ASDF_INSTALL_PATH/packages" \ - PATH="$go_path:$PATH" \ - go install "$name" > /dev/null && rc=$? || rc=$? + if [[ "$name" != *"@"* ]]; then + name="${name}@latest" + fi + + GOROOT="$ASDF_INSTALL_PATH/go" \ + GOPATH="$ASDF_INSTALL_PATH/packages" \ + GOBIN="$ASDF_INSTALL_PATH/packages/bin" \ + PATH="$go_path:$PATH" \ + go install "$name" >/dev/null && rc=$? || rc=$? else - GOROOT="$ASDF_INSTALL_PATH/go" \ - GOPATH="$ASDF_INSTALL_PATH/packages" \ - PATH="$go_path:$PATH" \ - go get -u "$name" > /dev/null && rc=$? || rc=$? + GOROOT="$ASDF_INSTALL_PATH/go" \ + GOPATH="$ASDF_INSTALL_PATH/packages" \ + PATH="$go_path:$PATH" \ + go get -u "$name" >/dev/null && rc=$? || rc=$? fi if [[ $rc -eq 0 ]]; then @@ -66,7 +66,7 @@ install_default_go_pkgs() { else err "FAIL" fi - done < "$default_go_pkgs" + done <"$default_go_pkgs" } install_golang "$ASDF_INSTALL_VERSION" "${ASDF_DOWNLOAD_PATH:-}" "$ASDF_INSTALL_PATH" diff --git a/set-env.fish b/set-env.fish index 2a9782b..6699670 100644 --- a/set-env.fish +++ b/set-env.fish @@ -4,5 +4,6 @@ function asdf_update_golang_env --on-event fish_prompt set --local full_path (builtin realpath "$go_path") set -gx GOROOT (dirname (dirname "$full_path")) + set -gx GOBIN (dirname "$GOROOT")/packages/bin end -end \ No newline at end of file +end diff --git a/set-env.zsh b/set-env.zsh index 248e164..57e9037 100644 --- a/set-env.zsh +++ b/set-env.zsh @@ -4,6 +4,8 @@ asdf_update_golang_env() { if [[ -n "${go_path}" ]]; then export GOROOT GOROOT="$(dirname "$(dirname "${go_path:A}")")" + export GOBIN + GOBIN="$(dirname "${GOROOT}")/packages/bin" fi }