penguin/utils

my env utils

commit d8369d834bee60891534080eaa67c949c18e62bb

author斟酌 鵬兄 <tgckpg@gmail.com>
date2026-04-25T09:06:49Z
subjectUse context after import
commit d8369d834bee60891534080eaa67c949c18e62bb
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2026-04-25T09:06:49Z

    Use context after import
---
 bash/sources/17_kcontext | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/bash/sources/17_kcontext b/bash/sources/17_kcontext
index a104fa5..e1e9eaa 100644
--- a/bash/sources/17_kcontext
+++ b/bash/sources/17_kcontext
@@ -124,12 +124,17 @@ function _kcontext-k8s {
 
 				KUBECONFIG="$_TMP_CONF" kubectl config view --minify --flatten \
 					| kstore update "kcontext" - "k8s.$_NAME"
+			else
+				KUBECONFIG="$_TMP_CONF" kubectl config view --minify --flatten \
+					| kstore add "kcontext" - "k8s.$_NAME"
+			fi
+
+			if [ $? -eq 0 ]; then
+				_kcontext-k8s use "$_NAME"
 				return $?
 			fi
 
-			KUBECONFIG="$_TMP_CONF" kubectl config view --minify --flatten \
-				| kstore add "kcontext" - "k8s.$_NAME"
-			return $?
+			return 1
 			;;
 		use)
 			_NAME=$2
@@ -147,19 +152,23 @@ function _kcontext-k8s {
 
 			chmod 600 "$_CONF"
 
-			echo $KUBECONFIG | grep "$_CONF" -q
-
 			case $OSTYPE in
 				cygwin)
-					_CONF=$( cygpath -w "$_CONF" )
+					_CONF=$(cygpath -w "$_CONF")
 					;;
 			esac
 
-			if [ $? -eq 0 ]; then
-				export KUBECONFIG="$_CONF"
-			else
-				export KUBECONFIG="$_CONF:$KUBECONFIG"
-			fi
+			case ":$KUBECONFIG:" in
+				*":$_CONF:"*)
+					export KUBECONFIG="$_CONF"
+					;;
+				"::")
+					export KUBECONFIG="$_CONF"
+					;;
+				*)
+					export KUBECONFIG="$_CONF:$KUBECONFIG"
+					;;
+			esac
 			;;
 		del)
 			_NAME=$2