moovweb / gvm

Go Version Manager
http://github.com/moovweb/gvm
MIT License
10.38k stars 546 forks source link

Path incorrectly modified by GVM script #466

Open andrew-ttd opened 9 months ago

andrew-ttd commented 9 months ago

After installing GVM the line below was added to my .zshrc:

[[ -s "/Users/andrew.oh/.gvm/scripts/gvm" ]] && source "/Users/andrew.oh/.gvm/scripts/gvm"

This script seems to incorrectly update my PATH environment variable by replacing spaces ` with:`. For example:

> env

PATH=...:/Users/me/Library/Application:Support/JetBrains/Toolbox/scripts

GVM_PATH_BACKUP=...:/Users/me/Library/Application Support/JetBrains/Toolbox/scripts
theunrepentantgeek commented 8 months ago

I'm seeing the same behaviour, but in this case it's mangling the path for VS Code:

In GVM_PATH_BACKUP: /mnt/c/Users/bearps/AppData/Local/Programs/Microsoft VS Code/bin

In PATH: /mnt/c/Users/bearps/AppData/Local/Programs/Microsoft:VS:Code/bin

The version I'm running:

$ gvm version
Go Version Manager v1.0.22 installed at /home/bevan/.gvm
caioreix commented 8 months ago

Same problem here, gvm is replacing spaces with :

zalom commented 8 months ago

Ditto. I spent a day debugging to see why code does not work when called from the terminal on WSL. The conclusion is the same, colon (:) replaces spaces.

Also, it replaces cd as well.

(before gvm scripts mod)

❯ type cd
cd is a shell builtin

(after gvm scripts mod)

❯ type cd
cd is a shell function from /home/zlatko/.gvm/scripts/env/cd
caioreix commented 8 months ago

@zalom i found a solution, just the space from this path ~/.gvm/scripts/function/munge_path line 51. Something like this IFS=':' path_in_ary=( $(printf "%s" "${path_in}") ) IFS="$defaultIFS"

zalom commented 8 months ago

@zalom i found a solution, just the space from this path ~/.gvm/scripts/function/munge_path line 51. Something like this IFS=':' path_in_ary=( $(printf "%s" "${path_in}") ) IFS="$defaultIFS"

Thanks man!

Ivan-Parushev commented 6 months ago

This works for me. Thanks @caioreix !

Is this a typo or for some reason it is meant to be ': '? If its just a mistake maybe somebody can make a quick PR and fix it permanently?

kaxxa123 commented 4 months ago

Installed gvm today and had the same problem. Windows 10 WSL2 (Ubuntu 22.04) Go Version Manager v1.0.22

Removing the extra space in line 51 of ~/.gvm/scripts/function/munge_path does not work for me.

Also further to what was already reported (replacement of spaces with a colon), Looking closely at the changes made to the PATH. I can see that many of my paths were simply chopped off. Here are some examples

FROM: /mnt/c/Program Files/Eclipse Adoptium/jdk-8.0.382.5-hotspot/bin /mnt/c/Program Files/nodejs

TO: Adoptium/jdk-8.0.382.5-hotspot/bin Files/nodejs

So the problem is not limited with replacing spaces with colon. Some paths simply get chopped off at a space.

Heunsig commented 3 months ago

@kaxxa123 I think this could be the solution. https://github.com/moovweb/gvm/issues/486#issuecomment-2273699373