nerdfonts: fix wrong attribute name in error message (#364463)
[NixPkgs.git] / pkgs / shells / nushell / default.nix
blobeab87fd8c5b5bb73730b825d6951bdfde1d4ad02
2   stdenv,
3   lib,
4   fetchFromGitHub,
5   rustPlatform,
6   openssl,
7   zlib,
8   zstd,
9   pkg-config,
10   python3,
11   xorg,
12   Libsystem,
13   AppKit,
14   Security,
15   nghttp2,
16   libgit2,
17   withDefaultFeatures ? true,
18   additionalFeatures ? (p: p),
19   testers,
20   nushell,
21   nix-update-script,
24 let
25   version = "0.100.0";
28 rustPlatform.buildRustPackage {
29   pname = "nushell";
30   inherit version;
32   src = fetchFromGitHub {
33     owner = "nushell";
34     repo = "nushell";
35     rev = "refs/tags/${version}";
36     hash = "sha256-lbVvKpaG9HSm2W+NaVUuEOxTNUIf0iRATTVDKFPjqV4=";
37   };
39   cargoHash = "sha256-omC/qcpgy65Md1MC0QGUVCRVNl9sWlFcCRxdS4aeU+g=";
41   nativeBuildInputs =
42     [ pkg-config ]
43     ++ lib.optionals (withDefaultFeatures && stdenv.hostPlatform.isLinux) [ python3 ]
44     ++ lib.optionals stdenv.hostPlatform.isDarwin [ rustPlatform.bindgenHook ];
46   buildInputs =
47     [
48       openssl
49       zstd
50     ]
51     ++ lib.optionals stdenv.hostPlatform.isDarwin [
52       zlib
53       Libsystem
54       Security
55     ]
56     ++ lib.optionals (withDefaultFeatures && stdenv.hostPlatform.isLinux) [ xorg.libX11 ]
57     ++ lib.optionals (withDefaultFeatures && stdenv.hostPlatform.isDarwin) [
58       AppKit
59       nghttp2
60       libgit2
61     ];
63   buildNoDefaultFeatures = !withDefaultFeatures;
64   buildFeatures = additionalFeatures [ ];
66   doCheck = !stdenv.hostPlatform.isDarwin; # Skip checks on darwin. Failing tests since 0.96.0
68   checkPhase = ''
69     runHook preCheck
70     (
71       # The skipped tests all fail in the sandbox because in the nushell test playground,
72       # the tmp $HOME is not set, so nu falls back to looking up the passwd dir of the build
73       # user (/var/empty). The assertions however do respect the set $HOME.
74       set -x
75       HOME=$(mktemp -d) cargo test -j $NIX_BUILD_CORES --offline -- \
76         --test-threads=$NIX_BUILD_CORES \
77         --skip=repl::test_config_path::test_default_config_path \
78         --skip=repl::test_config_path::test_xdg_config_bad \
79         --skip=repl::test_config_path::test_xdg_config_empty
80     )
81     runHook postCheck
82   '';
84   passthru = {
85     shellPath = "/bin/nu";
86     tests.version = testers.testVersion {
87       package = nushell;
88     };
89     updateScript = nix-update-script { };
90   };
92   meta = with lib; {
93     description = "Modern shell written in Rust";
94     homepage = "https://www.nushell.sh/";
95     license = licenses.mit;
96     maintainers = with maintainers; [
97       Br1ght0ne
98       johntitor
99       joaquintrinanes
100     ];
101     mainProgram = "nu";
102   };