fix(init): allow alternate Iris binary

This commit is contained in:
2026-08-14 13:32:26 +03:00
parent 669b73dbda
commit 1babd32f32
2 changed files with 23 additions and 4 deletions
+6 -2
View File
@@ -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"
if set -q IRIS_BIN
exec "$IRIS_BIN"
else
exec iris
end
end
# Iris Autocomplete Hook
+16 -1
View File
@@ -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)
}
})
}
}