From 16933b7d4fe7b4ebe47c798ff162273dbe6f179c Mon Sep 17 00:00:00 2001 From: Frank Becker Date: Sat, 10 Jan 2015 14:26:51 +0100 Subject: [PATCH] added gvm completion and plugin --- completion/available/gvm.completion.bash | 62 ++++++++++++++++++++++++ plugins/available/gvm.plugin.bash | 6 +++ 2 files changed, 68 insertions(+) create mode 100644 completion/available/gvm.completion.bash create mode 100644 plugins/available/gvm.plugin.bash diff --git a/completion/available/gvm.completion.bash b/completion/available/gvm.completion.bash new file mode 100644 index 00000000..c2158747 --- /dev/null +++ b/completion/available/gvm.completion.bash @@ -0,0 +1,62 @@ +_gvm_complete() +{ + local CANDIDATES + local CANDIDATE_VERSIONS + + COMPREPLY=() + + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $(compgen -W "install uninstall rm list ls use current version default selfupdate broadcast offline help flush" -- ${COMP_WORDS[COMP_CWORD]}) ) + elif [ $COMP_CWORD -eq 2 ]; then + case "${COMP_WORDS[COMP_CWORD-1]}" in + "install" | "uninstall" | "rm" | "list" | "ls" | "use" | "current" ) + CANDIDATES=$(echo "${GVM_CANDIDATES_CSV}" | tr ',' ' ') + COMPREPLY=( $(compgen -W "$CANDIDATES" -- ${COMP_WORDS[COMP_CWORD]}) ) + ;; + "offline" ) + COMPREPLY=( $(compgen -W "enable disable" -- ${COMP_WORDS[COMP_CWORD]}) ) + ;; + "selfupdate" ) + COMPREPLY=( $(compgen -W "force" -P "[" -S "]" -- ${COMP_WORDS[COMP_CWORD]}) ) + ;; + "flush" ) + COMPREPLY=( $(compgen -W "candidates broadcast archives temp" -- ${COMP_WORDS[COMP_CWORD]}) ) + ;; + *) + ;; + esac + elif [ $COMP_CWORD -eq 3 ]; then + case "${COMP_WORDS[COMP_CWORD-2]}" in + "install" | "uninstall" | "rm" | "use" | "default" ) + _gvm_candidate_versions ${COMP_WORDS[COMP_CWORD-1]} + COMPREPLY=( $(compgen -W "$CANDIDATE_VERSIONS" -- ${COMP_WORDS[COMP_CWORD]}) ) + ;; + *) + ;; + esac + fi + + return 0 +} + +_gvm_candidate_versions(){ + + if _gvm_offline; then + __gvmtool_build_version_csv $1 + CANDIDATE_VERSIONS="$(echo $CSV | tr ',' ' ')" + else + CANDIDATE_VERSIONS="$(curl -s "${GVM_SERVICE}/candidates/$1" | tr ',' ' ')" + fi + +} + +_gvm_offline() +{ + if [ "$GVM_ONLINE" = "true" ]; then + return 1 + else + return 0 + fi +} + +complete -F _gvm_complete gvm diff --git a/plugins/available/gvm.plugin.bash b/plugins/available/gvm.plugin.bash new file mode 100644 index 00000000..596c0276 --- /dev/null +++ b/plugins/available/gvm.plugin.bash @@ -0,0 +1,6 @@ +cite about-plugin +about-plugin 'load gvm environment' + +GVM_DIR="$HOME/.gvm" + +[[ -s "${GVM_DIR}/bin/gvm-init.sh" ]] && source "${GVM_DIR}/bin/gvm-init.sh"