From 3a7deefec3200122e71ab50a0f9ed4f9849a91e1 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Thu, 11 Dec 2025 17:02:28 -0500 Subject: [PATCH] cargo: Add fish completions, generate others when possible --- pkgs/development/compilers/rust/cargo.nix | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/pkgs/development/compilers/rust/cargo.nix b/pkgs/development/compilers/rust/cargo.nix index 42dd8bc59971..7535d26b49ff 100644 --- a/pkgs/development/compilers/rust/cargo.nix +++ b/pkgs/development/compilers/rust/cargo.nix @@ -2,6 +2,7 @@ lib, stdenv, pkgsHostHost, + pkgsBuildBuild, file, curl, pkg-config, @@ -74,11 +75,23 @@ rustPlatform.buildRustPackage.override installManPage src/tools/cargo/src/etc/man/* - installShellCompletion --bash --name cargo \ - src/tools/cargo/src/etc/cargo.bashcomp.sh - - installShellCompletion --zsh src/tools/cargo/src/etc/_cargo - ''; + '' + + ( + if stdenv.buildPlatform.canExecute stdenv.hostPlatform then + '' + installShellCompletion --cmd cargo \ + --bash <(CARGO_COMPLETE=bash cargo) \ + --fish <(CARGO_COMPLETE=fish cargo) \ + --zsh <(CARGO_COMPLETE=zsh cargo) + '' + else + '' + installShellCompletion --cmd cargo \ + --bash src/tools/cargo/src/etc/cargo.bashcomp.sh \ + --fish ${pkgsBuildBuild.cargo}/share/fish/vendor_completions.d/*.fish \ + --zsh src/tools/cargo/src/etc/_cargo + '' + ); checkPhase = '' # Disable cross compilation tests