From 9cb6bd10c65a67a5d85639cc343caa323056a2d3 Mon Sep 17 00:00:00 2001 From: Marco Vermeulen Date: Mon, 25 Oct 2021 19:20:56 +0100 Subject: [PATCH] More robust handling of native command parameters. --- src/main/bash/sdkman-main.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/bash/sdkman-main.sh b/src/main/bash/sdkman-main.sh index f316c6bf..9071d29f 100644 --- a/src/main/bash/sdkman-main.sh +++ b/src/main/bash/sdkman-main.sh @@ -139,19 +139,27 @@ function sdk() { # Store the return code of the requested command local final_rc=0 - # Execute the requested command + # Native commands found under libexec local native_command="${SDKMAN_DIR}/libexec/${COMMAND}" # Internal commands use underscores rather than hyphens local converted_command_name=$(echo "$COMMAND" | tr '-' '_') if [ -f "$native_command" ]; then - # It's available as a native binary - "$native_command" "$QUALIFIER" "$3" "$4" + # Available as native command + if [ -z "$QUALIFIER" ]; then + "$native_command" + elif [ -z "$3" ]; then + "$native_command" "$QUALIFIER" + elif [ -z "$4" ]; then + "$native_command" "$QUALIFIER" "$3" + else + "$native_command" "$QUALIFIER" "$3" "$4" + fi + final_rc=$? elif [ -n "$CMD_FOUND" ]; then - - # It's available as a shell function + # Available as a shell function __sdk_"$converted_command_name" "$QUALIFIER" "$3" "$4" final_rc=$? fi