From b67d2f6cf6adb2164523e1f0f6e473ce8e512333 Mon Sep 17 00:00:00 2001 From: Rafael Monico Date: Wed, 22 May 2024 13:54:31 -0300 Subject: [PATCH] feat(oc): supporting OPENSHIFT_NAMESPACE variable --- plugins/oc/oc.plugin.zsh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/plugins/oc/oc.plugin.zsh b/plugins/oc/oc.plugin.zsh index f0e2fc3bc..8a895552e 100644 --- a/plugins/oc/oc.plugin.zsh +++ b/plugins/oc/oc.plugin.zsh @@ -5,4 +5,34 @@ 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