about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/casperjs/default.nix
blob: 80786a10f5f19f83c785e1bf7f76efc5b7844937 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
{ stdenv, fetchFromGitHub, fontsConf, phantomjs2, python, nodePackages }:

let version = "1.1.1";

in stdenv.mkDerivation {

  pname = "casperjs";
  inherit version;

  src = fetchFromGitHub {
    owner = "casperjs";
    repo = "casperjs";
    rev = version;
    sha256 = "187prrm728xpn0nx9kxfxa4fwd7w25z78nsxfk6a6kl7c5656jpz";
  };

  buildInputs = [ phantomjs2 python nodePackages.eslint ];

  patchPhase = ''
    substituteInPlace bin/casperjs --replace "/usr/bin/env python" "${python}/bin/python" \
                                   --replace "'phantomjs'" "'${phantomjs2}/bin/phantomjs'"
  '';

  dontBuild = true;

  doCheck = true;
  checkPhase = ''
    export FONTCONFIG_FILE=${fontsConf}
    make test
  '';

  installPhase = ''
    cp -r . $out
  '';

  meta = {

    description = ''
      Navigation scripting & testing utility for PhantomJS and SlimerJS
    '';

    longDescription = ''
      CasperJS is a navigation scripting & testing utility for PhantomJS and
      SlimerJS (still experimental). It eases the process of defining a full
      navigation scenario and provides useful high-level functions, methods &
      syntactic sugar for doing common tasks.
    '';

    homepage = "http://casperjs.org";
    license = stdenv.lib.licenses.mit;

    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
    platforms = stdenv.lib.platforms.linux;
    broken = true;
  };
}