Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / shells / zsh / zsh-fzf-tab / default.nix
blob1b96c5224d0eb8fb98398960b71f14e24d83b13b
1 { stdenv, lib, fetchFromGitHub, zsh, ncurses, nix-update-script }:
3 let
4   INSTALL_PATH="${placeholder "out"}/share/fzf-tab";
5 in stdenv.mkDerivation rec {
6   pname = "zsh-fzf-tab";
7   version = "1.1.2";
9   src = fetchFromGitHub {
10     owner = "Aloxaf";
11     repo = "fzf-tab";
12     rev = "v${version}";
13     hash = "sha256-Qv8zAiMtrr67CbLRrFjGaPzFZcOiMVEFLg1Z+N6VMhg=";
14   };
16   strictDeps = true;
17   buildInputs = [ ncurses ];
19   # https://github.com/Aloxaf/fzf-tab/issues/337
20   env = lib.optionalAttrs stdenv.cc.isClang {
21     NIX_CFLAGS_COMPILE = toString [
22       "-Wno-error=implicit-function-declaration"
23       "-Wno-error=implicit-int"
24     ];
25   };
27   # this script is modified according to fzf-tab/lib-ftb-build-module
28   configurePhase = ''
29     runHook preConfigure
31     pushd modules
33     tar -xf ${zsh.src}
34     ln -s $(pwd)/Src/fzftab.c zsh-${zsh.version}/Src/Modules/
35     ln -s $(pwd)/Src/fzftab.mdd zsh-${zsh.version}/Src/Modules/
37     pushd zsh-${zsh.version}
40     if [[ ! -f ./configure ]]; then
41       ./Util/preconfig
42     fi
43     if [[ ! -f ./Makefile ]]; then
44       ./configure --disable-gdbm --without-tcsetpgrp
45     fi
47     popd
48     popd
50     runHook postConfigure
51   '';
53   buildPhase = ''
54     runHook preBuild
56     pushd modules/zsh-${zsh.version}
57     make -j$NIX_BUILD_CORES
58     popd
60     runHook postBuild
61   '';
63   installPhase = ''
64     runHook preInstall
66     mkdir -p ${INSTALL_PATH}
67     cp -r lib ${INSTALL_PATH}/lib
68     install -D fzf-tab.zsh ${INSTALL_PATH}/fzf-tab.zsh
69     install -D fzf-tab.plugin.zsh ${INSTALL_PATH}/fzf-tab.plugin.zsh
70     pushd modules/zsh-${zsh.version}/Src/Modules
71     if [[ -e "fzftab.so" ]]; then
72        install -D -t ${INSTALL_PATH}/modules/Src/aloxaf/ fzftab.so
73     fi
74     if [[ -e "fzftab.bundle" ]]; then
75        install -D -t ${INSTALL_PATH}/modules/Src/aloxaf/ fzftab.bundle
76     fi
77     popd
79     runHook postInstall
80   '';
82   passthru.updateScript = nix-update-script { };
84   meta = {
85     homepage = "https://github.com/Aloxaf/fzf-tab";
86     description = "Replace zsh's default completion selection menu with fzf!";
87     license = lib.licenses.mit;
88     maintainers = with lib.maintainers; [ vonfry ];
89     platforms = lib.platforms.unix;
90   };