From 281e443d731dc5cfca7b14cf7ba32d4375e2bc22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sun, 18 Jan 2026 21:54:43 +0100 Subject: [PATCH 1/3] fix(nix): make shell completion installation resilient to failures --- nix/opencode.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/nix/opencode.nix b/nix/opencode.nix index 23d9fbe34e0..749ab292de7 100644 --- a/nix/opencode.nix +++ b/nix/opencode.nix @@ -68,10 +68,18 @@ stdenvNoCC.mkDerivation (finalAttrs: { ''; postInstall = lib.optionalString (stdenvNoCC.buildPlatform.canExecute stdenvNoCC.hostPlatform) '' + completion_bash=$($out/bin/opencode completion || true) # trick yargs into also generating zsh completions - installShellCompletion --cmd opencode \ - --bash <($out/bin/opencode completion) \ - --zsh <(SHELL=/bin/zsh $out/bin/opencode completion) + completion_zsh=$(SHELL=/bin/zsh $out/bin/opencode completion || true) + if [ -n "$completion_bash" ]; then + installShellCompletion --cmd opencode \ + --bash <(echo "$completion_bash") + fi + + if [ -n "$completion_zsh" ]; then + installShellCompletion --cmd opencode \ + --zsh <(echo "$completion_zsh") + fi ''; nativeInstallCheckInputs = [ From 0e1b742872ade7a06fc4ed88a829e7eeafa9f457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sun, 18 Jan 2026 22:11:04 +0100 Subject: [PATCH 2/3] refactor: remove unnecessary blank line in nix shell completion installation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- nix/opencode.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nix/opencode.nix b/nix/opencode.nix index 749ab292de7..9474f41d4f2 100644 --- a/nix/opencode.nix +++ b/nix/opencode.nix @@ -75,7 +75,6 @@ stdenvNoCC.mkDerivation (finalAttrs: { installShellCompletion --cmd opencode \ --bash <(echo "$completion_bash") fi - if [ -n "$completion_zsh" ]; then installShellCompletion --cmd opencode \ --zsh <(echo "$completion_zsh") From 2c9c5e071fb7a47bf8a79c524d8cd5b2316d5284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Mon, 19 Jan 2026 02:53:18 +0100 Subject: [PATCH 3/3] fix(nix): add warning messages when shell completion generation fails --- nix/opencode.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nix/opencode.nix b/nix/opencode.nix index 9474f41d4f2..a0c7dcfd593 100644 --- a/nix/opencode.nix +++ b/nix/opencode.nix @@ -69,15 +69,20 @@ stdenvNoCC.mkDerivation (finalAttrs: { postInstall = lib.optionalString (stdenvNoCC.buildPlatform.canExecute stdenvNoCC.hostPlatform) '' completion_bash=$($out/bin/opencode completion || true) - # trick yargs into also generating zsh completions - completion_zsh=$(SHELL=/bin/zsh $out/bin/opencode completion || true) if [ -n "$completion_bash" ]; then installShellCompletion --cmd opencode \ --bash <(echo "$completion_bash") + else + echo >&2 "[1;31mwarning: bash completion generation failed or produced no output[0m" fi + + # trick yargs into also generating zsh completions + completion_zsh=$(SHELL=/bin/zsh $out/bin/opencode completion || true) if [ -n "$completion_zsh" ]; then installShellCompletion --cmd opencode \ --zsh <(echo "$completion_zsh") + else + echo >&2 "[1;31mwarning: zsh completion generation failed or produced no output[0m" fi '';