From e36e2f6679f422bb280e3d6b132a44e5aa21c613 Mon Sep 17 00:00:00 2001 From: Johannes Schickling Date: Tue, 20 Jan 2026 23:05:44 +0100 Subject: [PATCH] feat(nix): add shell completion outputs to flake (#1210) Add fish, bash, and zsh completion packages to the Nix flake. Completions are generated at build time using `bd completion `. Usage: nix build .#fish-completions nix build .#bash-completions nix build .#zsh-completions Co-authored-by: Claude Opus 4.5 --- flake.nix | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index f923ca70..33d23bf9 100644 --- a/flake.nix +++ b/flake.nix @@ -23,9 +23,27 @@ system: let pkgs = nixpkgs.legacyPackages.${system}; + bd = pkgs.callPackage ./default.nix { inherit pkgs self; }; in { - packages.default = pkgs.callPackage ./default.nix { inherit pkgs self; }; + packages = { + default = bd; + + fish-completions = pkgs.runCommand "bd-fish-completions" { } '' + mkdir -p $out/share/fish/vendor_completions.d + ${bd}/bin/bd completion fish > $out/share/fish/vendor_completions.d/bd.fish + ''; + + bash-completions = pkgs.runCommand "bd-bash-completions" { } '' + mkdir -p $out/share/bash-completion/completions + ${bd}/bin/bd completion bash > $out/share/bash-completion/completions/bd + ''; + + zsh-completions = pkgs.runCommand "bd-zsh-completions" { } '' + mkdir -p $out/share/zsh/site-functions + ${bd}/bin/bd completion zsh > $out/share/zsh/site-functions/_bd + ''; + }; apps.default = { type = "app";