nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
2014-10-28 18:09:42 +01:00

42 lines
1.4 KiB
Nix

{ stdenv, fetchurl, ocaml, findlib, ocpBuild, opam, cmdliner }:
let inherit (stdenv.lib) getVersion versionAtLeast; in
assert versionAtLeast (getVersion ocaml) "3.12.1";
assert versionAtLeast (getVersion ocpBuild) "1.99.3-beta";
stdenv.mkDerivation {
name = "ocp-indent-1.4.2b";
src = fetchurl {
url = "https://github.com/OCamlPro/ocp-indent/archive/1.4.2b.tar.gz";
sha256 = "1p0n2zcl5kf543x2xlqrz1aa51f0dqal8l392sa41j6wx82j0gpb";
};
buildInputs = [ ocaml findlib ocpBuild opam cmdliner ];
createFindlibDestdir = true;
# The supplied installer uses opam-installer which breaks when run
# normally since it tries to `mkdir $HOME`. However, we can use
# `opam-installer --script` to get the shell script that performs only
# the installation and just run that. Furthermore, we do the same that is
# done by pkgs/development/ocaml-modules/react and rename the paths meant
# for opam-installer so that they are in line with the other OCaml
# libraries in Nixpkgs.
installPhase = ''
opam-installer --script --prefix=$out ocp-indent.install \
| sed s!lib/ocp-indent!lib/ocaml/${getVersion ocaml}/site-lib/ocp-indent! \
| sh
'';
meta = with stdenv.lib; {
homepage = "http://typerex.ocamlpro.com/ocp-indent.html";
description = "A customizable tool to indent OCaml code";
license = licenses.gpl3;
platforms = ocaml.meta.platforms;
maintainers = [ maintainers.jirkamarsik ];
};
}