From 1babd32f3242b8d7f9fae5e8e78a3e1403c3b077 Mon Sep 17 00:00:00 2001 From: Pavel Sinitsin Date: Fri, 14 Aug 2026 13:32:26 +0300 Subject: [PATCH] fix(init): allow alternate Iris binary --- root/init.go | 10 +++++++--- root/init_test.go | 17 ++++++++++++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/root/init.go b/root/init.go index a13c23f..31e7401 100644 --- a/root/init.go +++ b/root/init.go @@ -35,7 +35,7 @@ fi # prompt to complete, and exec'ing here would seize the tty from the real iris if [[ -o interactive ]] && [ -t 0 ] && [ -z "$IRIS_PID" ] && [ -z "$IRIS_RESCUE" ]; then export IRIS_ACTIVE_SHELL="zsh" - exec iris + exec "${IRIS_BIN:-iris}" fi # Iris Autocomplete Hook @@ -80,7 +80,7 @@ fi # prompt to complete, and exec'ing here would seize the tty from the real iris if [[ $- == *i* ]] && [ -t 0 ] && [ -z "$IRIS_PID" ] && [ -z "$IRIS_RESCUE" ]; then export IRIS_ACTIVE_SHELL="bash" - exec iris + exec "${IRIS_BIN:-iris}" fi # Iris Autocomplete Hook @@ -115,7 +115,11 @@ end if status is-interactive; and not set -q IRIS_PID; and not set -q IRIS_RESCUE set -gx IRIS_ACTIVE_SHELL "fish" - exec iris + if set -q IRIS_BIN + exec "$IRIS_BIN" + else + exec iris + end end # Iris Autocomplete Hook diff --git a/root/init_test.go b/root/init_test.go index 4cbb6e8..f4963c1 100644 --- a/root/init_test.go +++ b/root/init_test.go @@ -41,7 +41,11 @@ func TestInitAutostartRequiresInteractiveShell(t *testing.T) { t.Run(shell, func(t *testing.T) { script := captureInitScript(t, shell) - head, _, found := strings.Cut(script, "exec iris") + autostart := `exec "${IRIS_BIN:-iris}"` + if shell == "fish" { + autostart = `exec "$IRIS_BIN"` + } + head, _, found := strings.Cut(script, autostart) if !found { t.Fatalf("%s init script has no autostart", shell) } @@ -57,3 +61,14 @@ func TestInitAutostartRequiresInteractiveShell(t *testing.T) { }) } } + +func TestInitAutostartSupportsBinaryOverride(t *testing.T) { + for _, shell := range []string{"zsh", "bash", "fish"} { + t.Run(shell, func(t *testing.T) { + script := captureInitScript(t, shell) + if !strings.Contains(script, "IRIS_BIN") { + t.Fatalf("%s init script does not support IRIS_BIN", shell) + } + }) + } +}