From 56348b1a12e1b85c8968bc15fd54476acaa68680 Mon Sep 17 00:00:00 2001 From: Marcos Pereira Date: Fri, 8 Jan 2021 16:38:08 -0500 Subject: [PATCH 1/2] Add sdkman bash completion to clean_files --- clean_files.txt | 1 + completion/available/sdkman.completion.bash | 37 +++++++++++---------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/clean_files.txt b/clean_files.txt index ddf8fdf9..2120e418 100644 --- a/clean_files.txt +++ b/clean_files.txt @@ -42,6 +42,7 @@ completion/available/packer.completion.bash completion/available/pipx.completion.bash completion/available/rustup.completion.bash completion/available/vault.completion.bash +completion/available/sdkman.completion.bash # aliases aliases/available/vim.aliases.bash diff --git a/completion/available/sdkman.completion.bash b/completion/available/sdkman.completion.bash index ce4b3673..d4450392 100644 --- a/completion/available/sdkman.completion.bash +++ b/completion/available/sdkman.completion.bash @@ -5,38 +5,38 @@ _sdkman_complete() COMPREPLY=() - if [ $COMP_CWORD -eq 1 ]; then - COMPREPLY=( $(compgen -W "install uninstall rm list ls use default home env current upgrade ug version broadcast help offline selfupdate update flush" -- ${COMP_WORDS[COMP_CWORD]}) ) - elif [ $COMP_CWORD -eq 2 ]; then + if [ "$COMP_CWORD" -eq 1 ]; then + mapfile -t COMPREPLY < <(compgen -W "install uninstall rm list ls use default home env current upgrade ug version broadcast help offline selfupdate update flush" -- "${COMP_WORDS[COMP_CWORD]}") + elif [ "$COMP_CWORD" -eq 2 ]; then case "${COMP_WORDS[COMP_CWORD-1]}" in "install" | "i" | "uninstall" | "rm" | "list" | "ls" | "use" | "u" | "default" | "d" | "home" | "h" | "current" | "c" | "upgrade" | "ug" ) CANDIDATES=$(echo "${SDKMAN_CANDIDATES_CSV}" | tr ',' ' ') - COMPREPLY=( $(compgen -W "$CANDIDATES" -- ${COMP_WORDS[COMP_CWORD]}) ) + mapfile -t COMPREPLY < <(compgen -W "$CANDIDATES" -- "${COMP_WORDS[COMP_CWORD]}") ;; "env" ) - COMPREPLY=( $(compgen -W "init" -- ${COMP_WORDS[COMP_CWORD]}) ) + mapfile -t COMPREPLY < <(compgen -W "init" -- "${COMP_WORDS[COMP_CWORD]}") ;; "offline" ) - COMPREPLY=( $(compgen -W "enable disable" -- ${COMP_WORDS[COMP_CWORD]}) ) + mapfile -t COMPREPLY < <(compgen -W "enable disable" -- "${COMP_WORDS[COMP_CWORD]}") ;; "selfupdate" ) - COMPREPLY=( $(compgen -W "force" -- ${COMP_WORDS[COMP_CWORD]}) ) + mapfile -t COMPREPLY < <(compgen -W "force" -- "${COMP_WORDS[COMP_CWORD]}") ;; "flush" ) - COMPREPLY=( $(compgen -W "archives tmp broadcast version" -- ${COMP_WORDS[COMP_CWORD]}) ) + mapfile -t COMPREPLY < <(compgen -W "archives tmp broadcast version" -- "${COMP_WORDS[COMP_CWORD]}") ;; *) ;; esac - elif [ $COMP_CWORD -eq 3 ]; then + elif [ "$COMP_CWORD" -eq 3 ]; then case "${COMP_WORDS[COMP_CWORD-2]}" in "uninstall" | "rm" | "use" | "u" | "default" | "d" | "home" | "h" ) - _sdkman_candidate_local_versions ${COMP_WORDS[COMP_CWORD-1]} - COMPREPLY=( $(compgen -W "$CANDIDATE_VERSIONS" -- ${COMP_WORDS[COMP_CWORD]}) ) + _sdkman_candidate_local_versions "${COMP_WORDS[COMP_CWORD-1]}" + mapfile -t COMPREPLY < <(compgen -W "$CANDIDATE_VERSIONS" -- "${COMP_WORDS[COMP_CWORD]}") ;; "install" | "i" ) - _sdkman_candidate_all_versions ${COMP_WORDS[COMP_CWORD-1]} - COMPREPLY=( $(compgen -W "$CANDIDATE_VERSIONS" -- ${COMP_WORDS[COMP_CWORD]}) ) + _sdkman_candidate_all_versions "${COMP_WORDS[COMP_CWORD-1]}" + mapfile -t COMPREPLY < <(compgen -W "$CANDIDATE_VERSIONS" -- "${COMP_WORDS[COMP_CWORD]}") ;; *) ;; @@ -48,25 +48,26 @@ _sdkman_complete() _sdkman_candidate_local_versions(){ - CANDIDATE_VERSIONS=$(__sdkman_cleanup_local_versions $1) + CANDIDATE_VERSIONS=$(__sdkman_cleanup_local_versions "$1") } _sdkman_candidate_all_versions(){ - CANDIDATE_LOCAL_VERSIONS=$(__sdkman_cleanup_local_versions $1) + candidate="$1" + CANDIDATE_LOCAL_VERSIONS=$(__sdkman_cleanup_local_versions "$candidate") if [ "$SDKMAN_OFFLINE_MODE" = "true" ]; then CANDIDATE_VERSIONS=$CANDIDATE_LOCAL_VERSIONS else - CANDIDATE_ONLINE_VERSIONS="$(__sdkman_list_versions $1 | grep " " | grep "\." | cut -c 62-)" - CANDIDATE_VERSIONS="$(echo $CANDIDATE_ONLINE_VERSIONS $CANDIDATE_LOCAL_VERSIONS | tr ' ' '\n' | sort | uniq -u) " + CANDIDATE_ONLINE_VERSIONS="$(__sdkman_list_versions "$1" | grep " " | grep "\." | cut -c 62-)" + CANDIDATE_VERSIONS="$(echo "$CANDIDATE_ONLINE_VERSIONS $CANDIDATE_LOCAL_VERSIONS" | tr ' ' '\n' | sort | uniq -u) " fi } __sdkman_cleanup_local_versions(){ - __sdkman_build_version_csv $1 | tr ',' ' ' + __sdkman_build_version_csv "$1" | tr ',' ' ' } From fe7d3ef17744d4dbf43b567416bb2e97a643ebc1 Mon Sep 17 00:00:00 2001 From: Marcos Pereira Date: Fri, 8 Jan 2021 16:42:18 -0500 Subject: [PATCH 2/2] Format sdkman bash completion with shfmt --- completion/available/sdkman.completion.bash | 111 ++++++++++---------- 1 file changed, 55 insertions(+), 56 deletions(-) diff --git a/completion/available/sdkman.completion.bash b/completion/available/sdkman.completion.bash index d4450392..9888c031 100644 --- a/completion/available/sdkman.completion.bash +++ b/completion/available/sdkman.completion.bash @@ -1,73 +1,72 @@ -_sdkman_complete() -{ - local CANDIDATES - local CANDIDATE_VERSIONS +_sdkman_complete() { + local CANDIDATES + local CANDIDATE_VERSIONS - COMPREPLY=() + COMPREPLY=() - if [ "$COMP_CWORD" -eq 1 ]; then - mapfile -t COMPREPLY < <(compgen -W "install uninstall rm list ls use default home env current upgrade ug version broadcast help offline selfupdate update flush" -- "${COMP_WORDS[COMP_CWORD]}") - elif [ "$COMP_CWORD" -eq 2 ]; then - case "${COMP_WORDS[COMP_CWORD-1]}" in - "install" | "i" | "uninstall" | "rm" | "list" | "ls" | "use" | "u" | "default" | "d" | "home" | "h" | "current" | "c" | "upgrade" | "ug" ) - CANDIDATES=$(echo "${SDKMAN_CANDIDATES_CSV}" | tr ',' ' ') - mapfile -t COMPREPLY < <(compgen -W "$CANDIDATES" -- "${COMP_WORDS[COMP_CWORD]}") - ;; - "env" ) - mapfile -t COMPREPLY < <(compgen -W "init" -- "${COMP_WORDS[COMP_CWORD]}") - ;; - "offline" ) - mapfile -t COMPREPLY < <(compgen -W "enable disable" -- "${COMP_WORDS[COMP_CWORD]}") - ;; - "selfupdate" ) - mapfile -t COMPREPLY < <(compgen -W "force" -- "${COMP_WORDS[COMP_CWORD]}") - ;; - "flush" ) - mapfile -t COMPREPLY < <(compgen -W "archives tmp broadcast version" -- "${COMP_WORDS[COMP_CWORD]}") - ;; - *) - ;; - esac - elif [ "$COMP_CWORD" -eq 3 ]; then - case "${COMP_WORDS[COMP_CWORD-2]}" in - "uninstall" | "rm" | "use" | "u" | "default" | "d" | "home" | "h" ) - _sdkman_candidate_local_versions "${COMP_WORDS[COMP_CWORD-1]}" - mapfile -t COMPREPLY < <(compgen -W "$CANDIDATE_VERSIONS" -- "${COMP_WORDS[COMP_CWORD]}") - ;; - "install" | "i" ) - _sdkman_candidate_all_versions "${COMP_WORDS[COMP_CWORD-1]}" - mapfile -t COMPREPLY < <(compgen -W "$CANDIDATE_VERSIONS" -- "${COMP_WORDS[COMP_CWORD]}") - ;; - *) - ;; - esac - fi + if [ "$COMP_CWORD" -eq 1 ]; then + mapfile -t COMPREPLY < <(compgen -W "install uninstall rm list ls use default home env current upgrade ug version broadcast help offline selfupdate update flush" -- "${COMP_WORDS[COMP_CWORD]}") + elif [ "$COMP_CWORD" -eq 2 ]; then + case "${COMP_WORDS[COMP_CWORD - 1]}" in + "install" | "i" | "uninstall" | "rm" | "list" | "ls" | "use" | "u" | "default" | "d" | "home" | "h" | "current" | "c" | "upgrade" | "ug") + CANDIDATES=$(echo "${SDKMAN_CANDIDATES_CSV}" | tr ',' ' ') + mapfile -t COMPREPLY < <(compgen -W "$CANDIDATES" -- "${COMP_WORDS[COMP_CWORD]}") + ;; + "env") + mapfile -t COMPREPLY < <(compgen -W "init" -- "${COMP_WORDS[COMP_CWORD]}") + ;; + "offline") + mapfile -t COMPREPLY < <(compgen -W "enable disable" -- "${COMP_WORDS[COMP_CWORD]}") + ;; + "selfupdate") + mapfile -t COMPREPLY < <(compgen -W "force" -- "${COMP_WORDS[COMP_CWORD]}") + ;; + "flush") + mapfile -t COMPREPLY < <(compgen -W "archives tmp broadcast version" -- "${COMP_WORDS[COMP_CWORD]}") + ;; + *) ;; - return 0 + esac + elif [ "$COMP_CWORD" -eq 3 ]; then + case "${COMP_WORDS[COMP_CWORD - 2]}" in + "uninstall" | "rm" | "use" | "u" | "default" | "d" | "home" | "h") + _sdkman_candidate_local_versions "${COMP_WORDS[COMP_CWORD - 1]}" + mapfile -t COMPREPLY < <(compgen -W "$CANDIDATE_VERSIONS" -- "${COMP_WORDS[COMP_CWORD]}") + ;; + "install" | "i") + _sdkman_candidate_all_versions "${COMP_WORDS[COMP_CWORD - 1]}" + mapfile -t COMPREPLY < <(compgen -W "$CANDIDATE_VERSIONS" -- "${COMP_WORDS[COMP_CWORD]}") + ;; + *) ;; + + esac + fi + + return 0 } -_sdkman_candidate_local_versions(){ +_sdkman_candidate_local_versions() { - CANDIDATE_VERSIONS=$(__sdkman_cleanup_local_versions "$1") + CANDIDATE_VERSIONS=$(__sdkman_cleanup_local_versions "$1") } -_sdkman_candidate_all_versions(){ +_sdkman_candidate_all_versions() { - candidate="$1" - CANDIDATE_LOCAL_VERSIONS=$(__sdkman_cleanup_local_versions "$candidate") - if [ "$SDKMAN_OFFLINE_MODE" = "true" ]; then - CANDIDATE_VERSIONS=$CANDIDATE_LOCAL_VERSIONS - else - CANDIDATE_ONLINE_VERSIONS="$(__sdkman_list_versions "$1" | grep " " | grep "\." | cut -c 62-)" - CANDIDATE_VERSIONS="$(echo "$CANDIDATE_ONLINE_VERSIONS $CANDIDATE_LOCAL_VERSIONS" | tr ' ' '\n' | sort | uniq -u) " - fi + candidate="$1" + CANDIDATE_LOCAL_VERSIONS=$(__sdkman_cleanup_local_versions "$candidate") + if [ "$SDKMAN_OFFLINE_MODE" = "true" ]; then + CANDIDATE_VERSIONS=$CANDIDATE_LOCAL_VERSIONS + else + CANDIDATE_ONLINE_VERSIONS="$(__sdkman_list_versions "$1" | grep " " | grep "\." | cut -c 62-)" + CANDIDATE_VERSIONS="$(echo "$CANDIDATE_ONLINE_VERSIONS $CANDIDATE_LOCAL_VERSIONS" | tr ' ' '\n' | sort | uniq -u) " + fi } -__sdkman_cleanup_local_versions(){ +__sdkman_cleanup_local_versions() { - __sdkman_build_version_csv "$1" | tr ',' ' ' + __sdkman_build_version_csv "$1" | tr ',' ' ' }