1{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper, perl, ncurses5, taskwarrior }:
2
3stdenv.mkDerivation rec {
4 version = "2020-12-17";
5 pname = "tasknc";
6
7 src = fetchFromGitHub {
8 owner = "lharding";
9 repo = "tasknc";
10 rev = "a182661fbcc097a933d5e8cce3922eb1734a563e";
11 sha256 = "0jrv2k1yizfdjndbl06lmy2bb62ky2rjdk308967j31c5kqqnw56";
12 };
13
14 # Pull pending upstream inclusion for ncurses-6.3:
15 # https://github.com/lharding/tasknc/pull/57
16 patches = [
17 (fetchpatch {
18 name = "ncurses-6.3.patch";
19 url = "https://github.com/lharding/tasknc/commit/f74ea0641e9bf287acf22fac9f6eeea571b01800.patch";
20 sha256 = "18a90zj85sw2zfnfcv055nvi0lx3h8lcgsyabdfk94ksn78pygrv";
21 })
22 ];
23
24 nativeBuildInputs = [
25 makeWrapper
26 perl # For generating the man pages with pod2man
27 ];
28
29 buildInputs = [ ncurses5 ];
30
31 hardeningDisable = [ "format" ];
32
33 buildFlags = [ "VERSION=${version}" ];
34
35 installPhase = ''
36 mkdir -p $out/bin/
37 mkdir -p $out/share/man/man1
38 mkdir -p $out/share/tasknc
39
40 DESTDIR=$out PREFIX= MANPREFIX=/share/man make install
41
42 wrapProgram $out/bin/tasknc --prefix PATH : ${taskwarrior}/bin
43 '';
44
45
46 meta = with lib; {
47 homepage = "https://github.com/lharding/tasknc";
48 description = "A ncurses wrapper around taskwarrior";
49 maintainers = with maintainers; [ matthiasbeyer infinisil ];
50 platforms = platforms.linux; # Cannot test others
51 license = licenses.mit;
52 };
53}