diff --git a/pkgs/development/tools/rust/sqlx-cli/default.nix b/pkgs/development/tools/rust/sqlx-cli/default.nix index 70973a455632..74da630ff938 100644 --- a/pkgs/development/tools/rust/sqlx-cli/default.nix +++ b/pkgs/development/tools/rust/sqlx-cli/default.nix @@ -2,14 +2,14 @@ , lib , rustPlatform , fetchFromGitHub +, installShellFiles , pkg-config -, openssl -, SystemConfiguration -, CoreFoundation -, Security , libiconv , testers , sqlx-cli +, CoreFoundation +, Security +, SystemConfiguration }: rustPlatform.buildRustPackage rec { @@ -26,11 +26,26 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-X7fLbih1s3sxn8vb2kQeFUKDK2DlC+sjm9ZTwj3FD1Y="; doCheck = false; - cargoBuildFlags = [ "-p sqlx-cli" ]; + cargoBuildFlags = [ "--package sqlx-cli --no-default-features --features rustls,postgres,sqlite,mysql,completions" ]; - nativeBuildInputs = [ pkg-config ]; - buildInputs = lib.optionals stdenv.isLinux [ openssl ] - ++ lib.optionals stdenv.isDarwin [ SystemConfiguration CoreFoundation Security libiconv ]; + nativeBuildInputs = [ + installShellFiles + pkg-config + ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + CoreFoundation + Security + SystemConfiguration + libiconv + ]; + + postInstall = '' + for shell in bash fish zsh; do + $out/bin/sqlx completions $shell > sqlx.$shell + installShellCompletion sqlx.$shell + done + ''; passthru.tests.version = testers.testVersion { package = sqlx-cli;