From 6bd036990e93c9aba2f65d005962f7fc62a5b27b Mon Sep 17 00:00:00 2001 From: Andrei Gaivoronskii Date: Mon, 11 Aug 2025 19:02:54 +0300 Subject: [PATCH] Added self-guard for lima cmds. To prevent infinite looping, we need to self-guard lima cmds, when .lima suffixes were removed or symlinked without it (e.g. `ln -s docker.lima docker`) Signed-off-by: Andrei Gaivoronskii --- cmd/docker.lima | 3 +++ cmd/kubectl.lima | 3 +++ cmd/podman.lima | 3 +++ 3 files changed, 9 insertions(+) diff --git a/cmd/docker.lima b/cmd/docker.lima index 2c2151cd5df..472df437616 100755 --- a/cmd/docker.lima +++ b/cmd/docker.lima @@ -15,6 +15,9 @@ elif [ "$(limactl ls -f '{{ .Status }}' "$LIMA_INSTANCE" 2>/dev/null)" != "Runni exit 1 fi DOCKER=$(command -v "$DOCKER" || true) +if [ -n "$DOCKER" ]; then + [ "$(readlink -f -- "$DOCKER")" = "$(readlink -f -- "$0")" ] && DOCKER="" +fi if [ -n "$DOCKER" ]; then DOCKER_HOST=$(limactl list "$LIMA_INSTANCE" --format 'unix://{{.Dir}}/sock/docker.sock') export DOCKER_HOST diff --git a/cmd/kubectl.lima b/cmd/kubectl.lima index 40822e8c973..d2dbfb76241 100755 --- a/cmd/kubectl.lima +++ b/cmd/kubectl.lima @@ -31,6 +31,9 @@ elif [ "$(limactl ls -f '{{ .Status }}' "$LIMA_INSTANCE" 2>/dev/null)" != "Runni exit 1 fi KUBECTL=$(command -v "$KUBECTL" || true) +if [ -n "$KUBECTL" ]; then + [ "$(readlink -f -- "$KUBECTL")" = "$(readlink -f -- "$0")" ] && KUBECTL="" +fi if [ -n "$KUBECTL" ]; then KUBECONFIG=$(limactl list "$LIMA_INSTANCE" --format '{{.Dir}}/copied-from-guest/kubeconfig.yaml') export KUBECONFIG diff --git a/cmd/podman.lima b/cmd/podman.lima index b05d23b5d0a..e2699f23cda 100755 --- a/cmd/podman.lima +++ b/cmd/podman.lima @@ -11,6 +11,9 @@ elif [ "$(limactl ls -f '{{ .Status }}' "$LIMA_INSTANCE" 2>/dev/null)" != "Runni exit 1 fi PODMAN=$(command -v "$PODMAN" || true) +if [ -n "$PODMAN" ]; then + [ "$(readlink -f -- "$PODMAN")" = "$(readlink -f -- "$0")" ] && PODMAN="" +fi if [ -n "$PODMAN" ]; then CONTAINER_HOST=$(limactl list "$LIMA_INSTANCE" --format 'unix://{{.Dir}}/sock/podman.sock') export CONTAINER_HOST