1{ stdenv, fetchgit, python, phantomjs }:
2
3stdenv.mkDerivation rec {
4 name = "casperjs-1.0.0-RC5";
5
6 src = fetchgit {
7 url = "git://github.com/n1k0/casperjs.git";
8 rev = "refs/tags/1.0.0-RC5";
9 sha256 = "e7fd6b94b4b304416159196208dea7f6e8841a667df102eb378a698a92f0f2c7";
10 };
11
12 patchPhase = ''
13 substituteInPlace bin/casperjs --replace "/usr/bin/env python" "${python}/bin/python" \
14 --replace "'phantomjs'" "'${phantomjs}/bin/phantomjs'"
15 '';
16
17 installPhase = ''
18 mkdir -p $out/share/casperjs $out/bin
19 cp -a . $out/share/casperjs/.
20 ln -s $out/share/casperjs/bin/casperjs $out/bin
21 '';
22
23 meta = {
24 description = "Navigation scripting & testing utility for PhantomJS";
25 longDescription = ''
26 CasperJS is a navigation scripting & testing utility for PhantomJS.
27 It eases the process of defining a full navigation scenario and provides useful high-level
28 functions, methods & syntaxic sugar for doing common tasks such as:
29 - defining & ordering navigation steps
30 - filling forms
31 - clicking links
32 - capturing screenshots of a page (or an area)
33 - making assertions on remote DOM
34 - logging & events
35 - downloading base64 encoded resources, even binary ones
36 - catching errors and react accordingly
37 - writing functional test suites, exporting results as JUnit XML (xUnit)
38 '';
39
40 homepage = http://casperjs.org;
41 license = stdenv.lib.licenses.mit;
42
43 maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
44 platforms = stdenv.lib.platforms.linux;
45 };
46}