diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix new file mode 100644 index 000000000000..916845047740 --- /dev/null +++ b/pkgs/shells/nushell/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, fetchFromGitHub +, rustPlatform +, openssl +, pkg-config +, python3 +, xorg +, libiconv +, AppKit +, Security +, withAllFeatures ? true +}: + +rustPlatform.buildRustPackage rec { + pname = "nushell"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "0_5_0"; + sha256 = "1s60w29c8sv0a4nmpggls9pkqyfrwwxjzd65p68d1xxxsdb36rzj"; + }; + + cargoSha256 = "0b8alc3si6y4xmn812izknbkfkz64kz7kcnq4xaqws6iqn7pqidp"; + + nativeBuildInputs = [ pkg-config ] + ++ stdenv.lib.optionals (withAllFeatures && stdenv.isLinux) [ python3 ]; + + buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ] + ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ] + ++ stdenv.lib.optionals (withAllFeatures && stdenv.isLinux) [ xorg.libX11 ] + ++ stdenv.lib.optionals (withAllFeatures && stdenv.isDarwin) [ AppKit ]; + + cargoBuildFlags = stdenv.lib.optionals withAllFeatures [ "--features" "all" ]; + + preCheck = '' + export HOME=$TMPDIR + ''; + + meta = with stdenv.lib; { + description = "A modern shell written in Rust"; + homepage = "https://www.nushell.sh/"; + license = licenses.mit; + maintainers = [ maintainers.marsam ]; + }; + + passthru = { + shellPath = "/bin/nu"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a8f30bd953d0..19102d9c5d26 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16574,6 +16574,10 @@ in musl = callPackage ../os-specific/linux/musl { }; + nushell = callPackage ../shells/nushell { + inherit (darwin.apple_sdk.frameworks) AppKit Security; + }; + nettools = if stdenv.isLinux then callPackage ../os-specific/linux/net-tools { } else unixtools.nettools;