nixpkgs/pkgs/shells/nushell/default.nix
mangoiv 2a42048c89
nushell: 0.75.0 -> 0.76.0
Bumped version for nushell
(release notes at https://www.nushell.sh/blog/2023-02-21-nushell_0_76.html);
changed the name of the settings such that it complies with the
current Cargo.toml; made it possible to apply additional cargo features
such as the dataframes feature, made it possible to skip checks to
avoid building and running the tests for derivations that modify
the cargo features
2023-02-24 14:54:44 +01:00

82 lines
1.9 KiB
Nix

{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, runCommand
, rustPlatform
, openssl
, zlib
, zstd
, pkg-config
, python3
, xorg
, libiconv
, Libsystem
, AppKit
, Security
, nghttp2
, libgit2
, doCheck ? true
, withDefaultFeatures ? true
, additionalFeatures ? (p: p)
, testers
, nushell
, nix-update-script
}:
rustPlatform.buildRustPackage (
let
version = "0.76.0";
pname = "nushell";
in {
inherit version pname;
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "sha256-dGsnbKsg0nQFFXZDRDei2uGhGWEQSeSHGpXJp+8QUC8=";
};
cargoSha256 = "sha256-9oXMojQA4tSoIxY1lwMPGhQz3WHcxEKtwl+4LsAYbDo=";
nativeBuildInputs = [ pkg-config ]
++ lib.optionals (withDefaultFeatures && stdenv.isLinux) [ python3 ]
++ lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ];
buildInputs = [ openssl zstd ]
++ lib.optionals stdenv.isDarwin [ zlib libiconv Libsystem Security ]
++ lib.optionals (withDefaultFeatures && stdenv.isLinux) [ xorg.libX11 ]
++ lib.optionals (withDefaultFeatures && stdenv.isDarwin) [ AppKit nghttp2 libgit2 ];
buildFeatures = additionalFeatures [ (lib.optional withDefaultFeatures "default") ];
# TODO investigate why tests are broken on darwin
# failures show that tests try to write to paths
# outside of TMPDIR
doCheck = doCheck && !stdenv.isDarwin;
checkPhase = ''
runHook preCheck
echo "Running cargo test"
HOME=$TMPDIR cargo test
runHook postCheck
'';
meta = with lib; {
description = "A modern shell written in Rust";
homepage = "https://www.nushell.sh/";
license = licenses.mit;
maintainers = with maintainers; [ Br1ght0ne johntitor marsam ];
mainProgram = "nu";
};
passthru = {
shellPath = "/bin/nu";
tests.version = testers.testVersion {
package = nushell;
};
updateScript = nix-update-script { };
};
})