Files
beads/flake.nix
Johannes Schickling e36e2f6679 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 <shell>`.

Usage:
  nix build .#fish-completions
  nix build .#bash-completions
  nix build .#zsh-completions

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 14:05:44 -08:00

71 lines
1.9 KiB
Nix

{
description = "beads (bd) - An issue tracker designed for AI-supervised coding workflows";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachSystem
[
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
]
(
system:
let
pkgs = nixpkgs.legacyPackages.${system};
bd = pkgs.callPackage ./default.nix { inherit pkgs self; };
in
{
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";
program = "${self.packages.${system}.default}/bin/bd";
};
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
go
git
gopls
gotools
golangci-lint
sqlite
];
shellHook = ''
echo "beads development shell"
echo "Go version: $(go version)"
'';
};
}
);
}