diff --git a/set-java-home.nu b/set-java-home.nu index 55f1ec79..3d6762f2 100644 --- a/set-java-home.nu +++ b/set-java-home.nu @@ -1,11 +1,21 @@ -def asdf_update_java_home [] { - let $java_path = (asdf which java) - - if $java_path { - let $full_path = (realpath $java_path | lines | nth 0 | str trim) - - let $java_home = ($full_path | path dirname | path dirname) - $env.JAVA_HOME = $java_home - $env.JDK_HOME = $java_home +def --env asdf_update_java_home [] { + let result = (do -i { asdf which java } | complete) + + match $result { + { exit_code: 0, stdout: $s } if ($s | str trim | is-not-empty) => { + let java_home = ( + $s + | lines | first | str trim + | path expand + | path dirname | path dirname + ) + $env.JAVA_HOME = $java_home + $env.JDK_HOME = $java_home + } + _ => { hide-env -i JAVA_HOME JDK_HOME } } } + +$env.config.hooks.pre_prompt = ($env.config.hooks.pre_prompt | default [] | append { + asdf_update_java_home +})