Catch ctrl-c in fzf

This commit is contained in:
fleaz 2025-05-31 23:51:43 +02:00
parent 7357a8fe76
commit 1ee6ba2cf9
Signed by: fleaz
GPG key ID: 935474624265FE8F

13
ktx
View file

@ -6,7 +6,7 @@ _create_file_and_switch() {
CONTEXT=${1} CONTEXT=${1}
NAMESPACE=${2} NAMESPACE=${2}
FILENAME="$HOME/.kube/ktx/${CONTEXT}_${NAMESPACE}.conf" FILENAME="$HOME/.kube/ktx/${CONTEXT}_${NAMESPACE}.conf"
kubectl config view --minify --flatten --context ${CONTEXT} > ${FILENAME} KUBECONFIG= kubectl config view --minify --flatten --context ${CONTEXT} > ${FILENAME}
export KUBECONFIG=${FILENAME} export KUBECONFIG=${FILENAME}
kubectl config set-context --current --namespace=${NAMESPACE} kubectl config set-context --current --namespace=${NAMESPACE}
ln -sf ${FILENAME} ${CUR_FILE} ln -sf ${FILENAME} ${CUR_FILE}
@ -16,7 +16,6 @@ _create_file_and_switch() {
# Switch context # Switch context
# Usage: ktx [cluster] [namespace] # Usage: ktx [cluster] [namespace]
ktx() { ktx() {
unset KUBECONFIG
CONTEXT=${1:-} CONTEXT=${1:-}
NAMESPACE=${2:-} NAMESPACE=${2:-}
@ -27,6 +26,11 @@ ktx() {
DEFAULT_NS=$(echo $SELECTION | cut -d"|" -f2) DEFAULT_NS=$(echo $SELECTION | cut -d"|" -f2)
fi fi
if [ -z $SELECTION ]; then
# User pressed ctrl+c in fzf
return
fi
# Take default namespace if user didn't supplied a specific one # Take default namespace if user didn't supplied a specific one
if [ -z $NAMESPACE ]; then if [ -z $NAMESPACE ]; then
NAMESPACE=${DEFAULT_NS} NAMESPACE=${DEFAULT_NS}
@ -44,6 +48,11 @@ kn() {
NAMESPACE=$(kubectl get namespace --no-headers | awk '{print $1}' | sort -r | fzf) NAMESPACE=$(kubectl get namespace --no-headers | awk '{print $1}' | sort -r | fzf)
fi fi
if [ -z $NAMESPACE ]; then
# User pressed ctrl+c in fzf
return
fi
CONTEXT=$(kubectl config get-contexts | grep "*" | awk '{print $2}') CONTEXT=$(kubectl config get-contexts | grep "*" | awk '{print $2}')
_create_file_and_switch ${CONTEXT} ${NAMESPACE} _create_file_and_switch ${CONTEXT} ${NAMESPACE}
} }