From e3382c257c3fd8a1d127d028851b333f1c8bb623 Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Fri, 6 Dec 2024 10:25:08 +0900 Subject: [PATCH 1/2] crystal: add fish completions fish completion was introduced in version 1.6.0 so this guard is required, now supporting 1.2.2 https://github.com/crystal-lang/crystal/commit/98a15ee1ab90c2590d43529ea527c6ffc0ce318d --- pkgs/development/compilers/crystal/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix index 39745f61faca..bb28612bff96 100644 --- a/pkgs/development/compilers/crystal/default.nix +++ b/pkgs/development/compilers/crystal/default.nix @@ -220,6 +220,8 @@ let install -Dm644 etc/completion.bash $out/share/bash-completion/completions/crystal install -Dm644 etc/completion.zsh $out/share/zsh/site-functions/_crystal + # fish completion was introduced since 1.6.0 + test -f etc/completion.fish && install -Dm644 etc/completion.fish $out/share/fish/vendor_completions.d/crystal.fish install -Dm644 man/crystal.1 $out/share/man/man1/crystal.1 From 7ad1c658a7057813b1058aa33c8e2d9f74604da8 Mon Sep 17 00:00:00 2001 From: Kenichi Kamiya Date: Fri, 6 Dec 2024 11:18:29 +0900 Subject: [PATCH 2/2] crystal: prefer installShellCompletion and installManPage --- pkgs/development/compilers/crystal/default.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix index bb28612bff96..0468bca709a7 100644 --- a/pkgs/development/compilers/crystal/default.nix +++ b/pkgs/development/compilers/crystal/default.nix @@ -25,6 +25,7 @@ , pcre2 , pcre , pkg-config +, installShellFiles , readline , tzdata , which @@ -166,7 +167,7 @@ let strictDeps = true; - nativeBuildInputs = [ binary makeWrapper which pkg-config llvmPackages.llvm ]; + nativeBuildInputs = [ binary makeWrapper which pkg-config llvmPackages.llvm installShellFiles ]; buildInputs = [ boehmgc (if lib.versionAtLeast version "1.8" then pcre2 else pcre) @@ -218,17 +219,18 @@ let cp -r docs/* $out/share/doc/crystal/api/ cp -r samples $out/share/doc/crystal/ - install -Dm644 etc/completion.bash $out/share/bash-completion/completions/crystal - install -Dm644 etc/completion.zsh $out/share/zsh/site-functions/_crystal - # fish completion was introduced since 1.6.0 - test -f etc/completion.fish && install -Dm644 etc/completion.fish $out/share/fish/vendor_completions.d/crystal.fish + installShellCompletion --cmd ${finalAttrs.meta.mainProgram} etc/completion.* - install -Dm644 man/crystal.1 $out/share/man/man1/crystal.1 + installManPage man/crystal.1 install -Dm644 -t $out/share/licenses/crystal LICENSE README.md mkdir -p $out ln -s $bin/bin $out/bin + ln -s $bin/share/bash-completion $out/share/bash-completion + ln -s $bin/share/zsh $out/share/zsh + # fish completion was introduced in 1.6.0 + test -f etc/completion.fish && ln -s $bin/share/fish $out/share/fish ln -s $lib $out/lib runHook postInstall