140 lines
3.3 KiB
Nix
140 lines
3.3 KiB
Nix
{ lib, fetchurl, fetchzip, ocaml-ng
|
|
, version
|
|
, tarballName ? "ocamlformat-${version}.tbz",
|
|
}:
|
|
|
|
let src =
|
|
if version == "0.11.0"
|
|
then fetchzip {
|
|
url = "https://github.com/ocaml-ppx/ocamlformat/archive/0.11.0.tar.gz";
|
|
sha256 = "0zvjn71jd4d3znnpgh0yphb2w8ggs457b6bl6cg1fmpdgxnds6yx";
|
|
} else fetchurl {
|
|
url = "https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/${tarballName}";
|
|
sha256 = {
|
|
"0.12" = "1zi8x597dhp2822j6j28s84yyiqppl7kykpwqqclx6ybypvlzdpj";
|
|
"0.13.0" = "0ki2flqi3xkhw9mfridivb6laxm7gml8rj9qz42vqmy9yx76jjxq";
|
|
"0.14.0" = "070c0x6z5y0lyls56zm34g8lyc093wkr0jfp50dvrkr9fk1sx2wi";
|
|
"0.14.1" = "03wn46xib63748157xchj7gflkw5000fcjw6n89h9g82q9slazaa";
|
|
"0.14.2" = "16phz1sg9b070p6fm8d42j0piizg05vghdjmw8aj7xm82b1pm7sz";
|
|
"0.14.3" = "13pfakdncddm41cp61p0l98scawbvhx1q4zdsglv7ph87l7zwqfl";
|
|
"0.15.0" = "0190vz59n6ma9ca1m3syl3mc8i1smj1m3d8x1jp21f710y4llfr6";
|
|
"0.15.1" = "1x6fha495sgk4z05g0p0q3zfqm5l6xzmf6vjm9g9g7c820ym2q9a";
|
|
"0.16.0" = "1vwjvvwha0ljc014v8jp8snki5zsqxlwd7x0dl0rg2i9kcmwc4mr";
|
|
"0.17.0" = "0f1lxp697yq61z8gqxjjaqd2ns8fd1vjfggn55x0gh9dx098p138";
|
|
"0.18.0" = "0571kzmb1h03qj74090n3mg8wfbh29qqrkdjkai6rnl5chll86lq";
|
|
}."${version}";
|
|
};
|
|
ocamlPackages =
|
|
if lib.versionAtLeast version "0.17.0"
|
|
then ocaml-ng.ocamlPackages
|
|
else if lib.versionAtLeast version "0.14.3"
|
|
then ocaml-ng.ocamlPackages_4_10
|
|
else ocaml-ng.ocamlPackages_4_07
|
|
; in
|
|
|
|
with ocamlPackages;
|
|
|
|
buildDunePackage {
|
|
pname = "ocamlformat";
|
|
inherit src version;
|
|
|
|
minimumOCamlVersion =
|
|
if lib.versionAtLeast version "0.17.0"
|
|
then "4.08"
|
|
else "4.06";
|
|
|
|
useDune2 = true;
|
|
|
|
buildInputs =
|
|
if lib.versionAtLeast version "0.18.0"
|
|
then [
|
|
base
|
|
cmdliner
|
|
fpath
|
|
odoc
|
|
re
|
|
stdio
|
|
uuseg
|
|
uutf
|
|
fix
|
|
menhir
|
|
menhirLib
|
|
menhirSdk
|
|
dune-build-info
|
|
ocaml-version
|
|
# Changed since 0.16.0:
|
|
(ppxlib.override { version = "0.22.0"; })
|
|
]
|
|
else if lib.versionAtLeast version "0.17.0"
|
|
then [
|
|
base
|
|
cmdliner
|
|
fpath
|
|
odoc
|
|
re
|
|
stdio
|
|
uuseg
|
|
uutf
|
|
fix
|
|
menhir
|
|
menhirLib
|
|
menhirSdk
|
|
dune-build-info
|
|
ocaml-version
|
|
# Changed since 0.16.0:
|
|
(ppxlib.override { version = "0.22.0"; })
|
|
ocaml-migrate-parsetree-2
|
|
]
|
|
else if lib.versionAtLeast version "0.15.1"
|
|
then [
|
|
base
|
|
cmdliner
|
|
fpath
|
|
odoc
|
|
re
|
|
stdio
|
|
uuseg
|
|
uutf
|
|
fix
|
|
menhir
|
|
menhirLib
|
|
menhirSdk
|
|
(ppxlib.override { version = "0.18.0"; })
|
|
dune-build-info # lib.versionAtLeast version "0.16.0"
|
|
ocaml-version # lib.versionAtLeast version "0.16.0"
|
|
]
|
|
else if lib.versionAtLeast version "0.14"
|
|
then [
|
|
base
|
|
cmdliner
|
|
fpath
|
|
ocaml-migrate-parsetree
|
|
odoc
|
|
re
|
|
stdio
|
|
uuseg
|
|
uutf
|
|
fix
|
|
menhir
|
|
menhirLib
|
|
menhirSdk
|
|
] else [
|
|
base
|
|
cmdliner
|
|
fpath
|
|
ocaml-migrate-parsetree
|
|
odoc
|
|
re
|
|
stdio
|
|
uuseg
|
|
uutf
|
|
];
|
|
|
|
meta = {
|
|
homepage = "https://github.com/ocaml-ppx/ocamlformat";
|
|
description = "Auto-formatter for OCaml code";
|
|
maintainers = [ lib.maintainers.Zimmi48 lib.maintainers.marsam ];
|
|
license = lib.licenses.mit;
|
|
};
|
|
}
|
|
|