anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / tools / misc / starship / default.nix
blob66fac2661a2c2cf7544c03a2169419212dd63e50
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , rustPlatform
5 , installShellFiles
6 , cmake
7 , git
8 , nixosTests
9 , Security
10 , Foundation
11 , Cocoa
14 rustPlatform.buildRustPackage rec {
15   pname = "starship";
16   version = "1.21.1";
18   src = fetchFromGitHub {
19     owner = "starship";
20     repo = "starship";
21     rev = "v${version}";
22     hash = "sha256-Xn9qV26/ST+3VtVq6OJP823lIVIo0zEdno+nIUv8B9c=";
23   };
25   nativeBuildInputs = [ installShellFiles cmake ];
27   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Security Foundation Cocoa ];
29   NIX_LDFLAGS = lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [ "-framework" "AppKit" ];
31   # tries to access HOME only in aarch64-darwin environment when building mac-notification-sys
32   preBuild = lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
33     export HOME=$TMPDIR
34   '';
36   postInstall = ''
37     presetdir=$out/share/starship/presets/
38     mkdir -p $presetdir
39     cp docs/public/presets/toml/*.toml $presetdir
40   '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
41     installShellCompletion --cmd starship \
42       --bash <($out/bin/starship completions bash) \
43       --fish <($out/bin/starship completions fish) \
44       --zsh <($out/bin/starship completions zsh)
45   '';
47   cargoHash = "sha256-YbZCe2OcX/wq0OWvWK61nWvRT0O+CyW0QY0J7vv6QaM=";
49   nativeCheckInputs = [ git ];
51   preCheck = ''
52     HOME=$TMPDIR
53   '';
55   passthru.tests = {
56     inherit (nixosTests) starship;
57   };
59   meta = with lib; {
60     description = "Minimal, blazing fast, and extremely customizable prompt for any shell";
61     homepage = "https://starship.rs";
62     license = licenses.isc;
63     maintainers = with maintainers; [ danth davidtwco Br1ght0ne Frostman ];
64     mainProgram = "starship";
65   };