ohmyzsh/plugins/oc/oc.plugin.zsh
2024-05-22 13:54:53 -03:00

38 lines
1.1 KiB
Bash

# Autocompletion for oc, the command line interface for OpenShift
#
# Author: https://github.com/kevinkirkup
if [ $commands[oc] ]; then
source <(oc completion zsh)
compdef _oc oc
OC_PLUGIN_INITIALIZED=no
function oc_prompt_info() {
[ -n "$OPENSHIFT_NAMESPACE" ] && echo -ne "\n(openshift: $OPENSHIFT_NAMESPACE)\n\x00"
}
# TODO Completion
function oc-namespace() {
# TODO -h / --help
# TODO "--clear" should unset variable
# when nothing passed should show usage
# TODO Rename this to "oc" and call binary oc with full path
# so this can become a subcommand: "oc localenv namespace xyz"
[ -n "$1" ] \
&& export OPENSHIFT_NAMESPACE="$1" \
|| unset OPENSHIFT_NAMESPACE
[ "$OC_PLUGIN_INITIALIZED" = "no" ] && {
export PROMPT='$(oc_prompt_info)'"$PROMPT"
# TODO Check if text "oc_prompt_info" is in "$PROMPT"
# instead set this variable
export OC_PLUGIN_INITIALIZED=yes
}
}
alias oc='oc ${OPENSHIFT_NAMESPACE:+"--namespace=$OPENSHIFT_NAMESPACE"}'
else
echo "oc plugin error: oc command not found..."
fi