summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/sdk
diff options
context:
space:
mode:
Diffstat (limited to 'oh-my-zsh/plugins/sdk')
-rw-r--r--oh-my-zsh/plugins/sdk/README.md14
-rw-r--r--oh-my-zsh/plugins/sdk/sdk.plugin.zsh58
2 files changed, 72 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/sdk/README.md b/oh-my-zsh/plugins/sdk/README.md
new file mode 100644
index 0000000..1eda5d3
--- /dev/null
+++ b/oh-my-zsh/plugins/sdk/README.md
@@ -0,0 +1,14 @@
+# sdk
+
+Plugin for SDKMAN, a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems.
+Provides autocompletion for all known commands.
+
+To use it, add `sdk` to your plugins array in your zshrc file:
+
+```zsh
+plugins=(... sdk)
+```
+
+## Requirements
+
+* [SDKMAN](http://sdkman.io/)
diff --git a/oh-my-zsh/plugins/sdk/sdk.plugin.zsh b/oh-my-zsh/plugins/sdk/sdk.plugin.zsh
new file mode 100644
index 0000000..441bd6f
--- /dev/null
+++ b/oh-my-zsh/plugins/sdk/sdk.plugin.zsh
@@ -0,0 +1,58 @@
+#!/usr/bin/env zsh
+
+### SDKMAN Autocomplete for Oh My Zsh
+
+_sdk() {
+ case "${CURRENT}" in
+ 2)
+ compadd -X $'Commands:\n' -- "${${(Mk)functions[@]:#__sdk_*}[@]#__sdk_}"
+ compadd -n rm
+ ;;
+ 3)
+ case "${words[2]}" in
+ l|ls|list|i|install)
+ compadd -X $'Candidates:\n' -- "${SDKMAN_CANDIDATES[@]}"
+ ;;
+ ug|upgrade|h|home|c|current|u|use|d|default|rm|uninstall)
+ compadd -X $'Installed Candidates:\n' -- "${${(u)${(f)$(find -L -- "${SDKMAN_CANDIDATES_DIR}" -mindepth 2 -maxdepth 2 -type d)}[@]:h}[@]:t}"
+ ;;
+ e|env)
+ compadd init
+ ;;
+ offline)
+ compadd enable disable
+ ;;
+ selfupdate)
+ compadd force
+ ;;
+ flush)
+ compadd archives broadcast temp version
+ ;;
+ esac
+ ;;
+ 4)
+ case "${words[2]}" in
+ i|install)
+ setopt localoptions kshglob
+ if [[ "${words[3]}" == 'java' ]]; then
+ compadd -X $'Installable Versions of java:\n' -- "${${${${${(f)$(__sdkman_list_versions "${words[3]}")}[@]:5:-4}[@]:#* | (local only|installed ) | *}[@]##* | | }[@]%%+( )}"
+ else
+ compadd -X "Installable Versions of ${words[3]}:"$'\n' -- "${${(z)${(M)${(f)${$(__sdkman_list_versions "${words[3]}")//[*+>]+( )/-}}[@]:# *}[@]}[@]:#-*}"
+ fi
+ ;;
+ h|home|u|use|d|default|rm|uninstall)
+ compadd -X "Installed Versions of ${words[3]}:"$'\n' -- "${${(f)$(find -L -- "${SDKMAN_CANDIDATES_DIR}/${words[3]}" -mindepth 1 -maxdepth 1 -type d -not -name 'current')}[@]:t}"
+ ;;
+ esac
+ ;;
+ 5)
+ case "${words[2]}" in
+ i|install)
+ _files -X "Path to Local Installation of ${words[3]} ${words[4]}:"$'\n' -/
+ ;;
+ esac
+ ;;
+ esac
+}
+
+compdef _sdk sdk