toxic: 0.15.1 -> 0.16.0
[NixPkgs.git] / pkgs / by-name / sh / sharness / package.nix
blobdf23130742fc2d7c1f43a4607547c20f9cc2cc25
2   stdenv,
3   lib,
4   fetchFromGitHub,
5   perl,
6   perlPackages,
7   sharnessExtensions ? { },
8 }:
10 stdenv.mkDerivation (finalAttrs: {
11   pname = "sharness";
12   version = "1.2.0";
14   src = fetchFromGitHub {
15     owner = "felipec";
16     repo = "sharness";
17     rev = "v${finalAttrs.version}";
18     hash = "sha256-C0HVWgTm9iXDSFyXcUVRfT0ip31YGaaZ6ZvxggK/x7o=";
19   };
21   # Used for testing
22   nativeBuildInputs = [
23     perl
24     perlPackages.IOTty
25   ];
27   outputs = [
28     "out"
29     "doc"
30   ];
32   makeFlags = [ "prefix=$(out)" ];
34   extensions = lib.mapAttrsToList (k: v: "${k}.sh ${v}") sharnessExtensions;
36   postInstall = lib.optionalString (sharnessExtensions != { }) ''
37     extDir=$out/share/sharness/sharness.d
38     mkdir -p "$extDir"
39     linkExtensions() {
40       set -- $extensions
41       while [ $# -ge 2 ]; do
42         ln -s "$2" "$extDir/$1"
43         shift 2
44       done
45     }
46     linkExtensions
47   '';
49   doCheck = true;
51   passthru.SHARNESS_TEST_SRCDIR = finalAttrs.finalPackage + "/share/sharness";
53   meta = with lib; {
54     description = "Portable shell library to write, run and analyze automated tests adhering to Test Anything Protocol (TAP)";
55     homepage = "https://github.com/chriscool/sharness";
56     license = licenses.gpl2Only;
57     maintainers = [ maintainers.spacefrogg ];
58     platforms = platforms.unix;
59   };