dvm icon indicating copy to clipboard operation
dvm copied to clipboard

`dvm use` doesn't work

Open fikama opened this issue 1 year ago • 3 comments

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 :)

fikama avatar Mar 27 '25 11:03 fikama

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?

cbracken avatar Mar 27 '25 12:03 cbracken

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

fikama avatar Mar 28 '25 11:03 fikama

Looks to me like _dvm_path_prepend is working fine.

Can you dump the output of:

  1. which dvm
  2. 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?

cbracken avatar May 16 '25 19:05 cbracken