From 01f52b42e8f8c358c2ccbc3d59987b7043444d4d Mon Sep 17 00:00:00 2001 From: Alexei Mikhailov Date: Sun, 29 Dec 2024 15:54:54 +0200 Subject: [PATCH] exercism: install shell completions Exercism ships both with pre-generated completions [0], and has `completion` command to generate completions for bash/zsh/fish/powershell. Initially I was planning to use the latter, but seems like due to a bug (?) in cobra-generated completions (probably [1]), the resulting completions aren't fully working (if at all); so this makes use of the ones provided in the repo. I'll probably update this once more to use auto-generated completions once I manage to update cobra dependency for exercism CLI itself. [0] https://github.com/exercism/cli/tree/main/shell [1] https://github.com/spf13/cobra/pull/1940 --- pkgs/by-name/ex/exercism/package.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/by-name/ex/exercism/package.nix b/pkgs/by-name/ex/exercism/package.nix index 2dc94860e8ea..117798021077 100644 --- a/pkgs/by-name/ex/exercism/package.nix +++ b/pkgs/by-name/ex/exercism/package.nix @@ -1,6 +1,7 @@ { lib, buildGoModule, + installShellFiles, fetchFromGitHub, nix-update-script, }: @@ -22,8 +23,17 @@ buildGoModule rec { subPackages = [ "./exercism" ]; + nativeBuildInputs = [ installShellFiles ]; + passthru.updateScript = nix-update-script { }; + postInstall = '' + installShellCompletion --cmd exercism \ + --bash shell/exercism_completion.bash \ + --fish shell/exercism.fish \ + --zsh shell/exercism_completion.zsh + ''; + meta = with lib; { inherit (src.meta) homepage; description = "Go based command line tool for exercism.io";