From 3b08bec5a9083007c939f02fd3e85ed2760fb5b1 Mon Sep 17 00:00:00 2001
From: Luca Bilke <luca@bil.ke>
Date: Thu, 2 May 2024 19:44:43 +0200
Subject: [PATCH] minor updates

---
 .config/nvim                  |  2 +-
 .config/zsh/completions/_kube | 40 +++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 1 deletion(-)
 create mode 100644 .config/zsh/completions/_kube

diff --git a/.config/nvim b/.config/nvim
index 6212cc61..d4b953f2 160000
--- a/.config/nvim
+++ b/.config/nvim
@@ -1 +1 @@
-Subproject commit 6212cc611f4d54f64dbca18838e4aeaa60f39f71
+Subproject commit d4b953f20d7f1f02acad1c0dcec17a20be381157
diff --git a/.config/zsh/completions/_kube b/.config/zsh/completions/_kube
new file mode 100644
index 00000000..e2104745
--- /dev/null
+++ b/.config/zsh/completions/_kube
@@ -0,0 +1,40 @@
+#compdef kube
+
+local curcontext="$curcontext" state line expl ret=1
+
+function _kube_clusters() {
+    find "$TRALIOS_KUBECONFIG_DIR" \
+        -maxdepth 1 \
+        -type f \
+        -regex ".*\.ya?ml" |
+        xargs -n 1 basename |
+        sed 's/\.ya\?ml$//'
+}
+
+function _kube_args() {
+    index=$1
+    kubeconfig=$(find "$TRALIOS_KUBECONFIG_DIR" -maxdepth 1 -type f -regex ".*/${words[3]}\.ya?ml")
+
+    case "${words[2]}" in
+        (shell)
+            case "$index" in 
+                (3)
+                    kubectl --kubeconfig "${kubeconfig}" get namespaces | tail -n +2 | awk "{ print \$1 }"
+                ;;
+                (4)
+                    kubectl --kubeconfig "${kubeconfig}" -n "${words[4]}" get pods | tail -n +2 | awk "{ print \$1 }"
+                ;;
+            esac
+            ;;
+        (pv_migrate)
+            if [ "$index" = "3" ]; then
+                _kube_clusters
+            fi
+            ;;
+    esac
+}
+
+_arguments '1:action:(shell k9s ctl dash prom traefik rook debug_start debug_kill pv_migrate)'
+_arguments '2:cluster:($(_kube_clusters))'
+_arguments '3:arguments:($(_kube_args 3))'
+_arguments '4:arguments:($(_kube_args 4))'