42 lines
1.4 KiB
Nix
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 ];
|
|
};
|
|
}
|