btrbk: add mainProgram
[NixPkgs.git] / pkgs / by-name / zs / zsh-powerlevel10k / package.nix
blobc9f610471f5757b390c0556950137690232770e2
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , substituteAll
5 , gitstatus
6 , bash
7 }:
10 let
11   # match gitstatus version with given `gitstatus_version`:
12   # https://github.com/romkatv/powerlevel10k/blob/master/gitstatus/build.info
13   gitstatus' = gitstatus.overrideAttrs (oldAtttrs: rec {
14     version = "1.5.4";
16     src = fetchFromGitHub {
17       owner = "romkatv";
18       repo = "gitstatus";
19       rev = "refs/tags/v${version}";
20       hash = "sha256-mVfB3HWjvk4X8bmLEC/U8SKBRytTh/gjjuReqzN5qTk=";
21     };
22   });
24 stdenv.mkDerivation rec {
25   pname = "powerlevel10k";
26   version = "1.20.0";
28   src = fetchFromGitHub {
29     owner = "romkatv";
30     repo = "powerlevel10k";
31     rev = "refs/tags/v${version}";
32     hash = "sha256-ES5vJXHjAKw/VHjWs8Au/3R+/aotSbY7PWnWAMzCR8E=";
33   };
35   strictDeps = true;
36   buildInputs = [ bash ];
38   patches = [
39     (substituteAll {
40       src = ./gitstatusd.patch;
41       gitstatusdPath = "${gitstatus'}/bin/gitstatusd";
42     })
43   ];
45   installPhase = ''
46     install -D powerlevel10k.zsh-theme --target-directory=$out/share/zsh-powerlevel10k
47     install -D powerlevel9k.zsh-theme --target-directory=$out/share/zsh-powerlevel10k
48     install -D config/* --target-directory=$out/share/zsh-powerlevel10k/config
49     install -D internal/* --target-directory=$out/share/zsh-powerlevel10k/internal
50     cp -R gitstatus $out/share/zsh-powerlevel10k/gitstatus
51   '';
53   meta = {
54     changelog = "https://github.com/romkatv/powerlevel10k/releases/tag/v${version}";
55     description = "Fast reimplementation of Powerlevel9k ZSH theme";
56     longDescription = ''
57       To make use of this derivation, use
58       `programs.zsh.promptInit = "source ''${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme";`
59     '';
60     homepage = "https://github.com/romkatv/powerlevel10k";
61     license = lib.licenses.mit;
62     platforms = lib.platforms.unix;
63     maintainers = with lib.maintainers; [ hexa ];
64   };