1{ stdenv
2, lib
3, fetchFromGitHub
4, fetchurl
5, perl
6, perlPackages
7, sharnessExtensions ? {} }:
8
9stdenv.mkDerivation rec {
10 pname = "sharness";
11 version = "1.1.0-dev";
12
13 src = fetchFromGitHub {
14 owner = "chriscool";
15 repo = pname;
16 rev = "3f238a740156dd2082f4bd60ced205e05894d367"; # 2020-12-09
17 sha256 = "FCYskpIqkrpNaWCi2LkhEkiow4/rXLe+lfEWNUthLUg=";
18 };
19
20 # Used for testing
21 nativeBuildInputs = [ perl perlPackages.IOTty ];
22
23 outputs = [ "out" "doc" ];
24
25 makeFlags = [ "prefix=$(out)" ];
26
27 extensions = lib.mapAttrsToList (k: v: "${k}.sh ${v}") sharnessExtensions;
28
29 postInstall = lib.optionalString (sharnessExtensions != {}) ''
30 extDir=$out/share/sharness/sharness.d
31 mkdir -p "$extDir"
32 linkExtensions() {
33 set -- $extensions
34 while [ $# -ge 2 ]; do
35 ln -s "$2" "$extDir/$1"
36 shift 2
37 done
38 }
39 linkExtensions
40 '';
41
42 doCheck = true;
43
44 meta = with lib; {
45 description = "Portable shell library to write, run and analyze automated tests adhering to Test Anything Protocol (TAP)";
46 homepage = "https://github.com/chriscool/sharness";
47 license = licenses.gpl2Only;
48 maintainers = [ maintainers.spacefrogg ];
49 platforms = platforms.unix;
50 };
51}