`dvm use` doesn't work
Thanks for developing this tool. What am I doing wrong?
$ dart --version
Dart SDK version: 3.7.0 (stable) (Wed Feb 5 04:53:58 2025 -0800) on "linux_x64"
$ dvm list
2.19.6
$ dvm use 2.19.6
$ dart --version
Dart SDK version: 3.7.0 (stable) (Wed Feb 5 04:53:58 2025 -0800) on "linux_x64"
Please let me know if you need any more information from my side :)
If I were to hazard a guess, it may be an issue with $PATH ordering. Can you paste the output of the following commands, in order?
% echo $PATH
% dvm use 2.19.6
% echo $PATH
Just in case -- which shell are you using? Based on being Linux and the $ prompt, I'm guessing bash?
Here you go:
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin
$ dvm use 2.19.6
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin
$ echo $SHELL
/usr/bin/bash
Here is the same output but I modified _dvm_path_prepend() function by adding echo:
_dvm_path_prepend() {
_dvm_path_remove "$1"
if [ -d "$1" ]; then
export PATH="$1:$PATH"
echo $PATH
fi
}
and it seems to export PATH correctly in scripts scope:
$ nvim ~/aur/dvm/scripts/dvm
$ . ~/.bashrc
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin
$ dvm use 2.19.6
/home/filip/aur/dvm/darts/2.19.6/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin
$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin
also here is dvm related fragment of my .bashrc (these are also 4 last lines of .bashrc file)
export DVM_ROOT="/home/filip/aur/dvm"
if [[ -f $DVM_ROOT/scripts/dvm ]]; then
. $DVM_ROOT/scripts/dvm
fi
Looks to me like _dvm_path_prepend is working fine.
Can you dump the output of:
-
which dvm -
alias
If you were running dvm directly as a script instead of sourcing it in your .bashrc/.zshrc, then you'd see what you're seeing. It's installed as per the instructions, correct?