Skip to content

Commit 5ac3510

Browse files
committed
Add mill 1.0.3
1 parent 1db1256 commit 5ac3510

File tree

3 files changed

+70
-2
lines changed

3 files changed

+70
-2
lines changed

flake.nix

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
devshellToolsPkgs = pkgs: let
3030
scripts = legacyPackages pkgs;
3131
sbts = pkgs.callPackage (import ./pkgs/sbt.nix) {};
32-
mills = pkgs.callPackage (import ./pkgs/mill.nix) {};
32+
mill1 = pkgs.callPackage (import ./pkgs/mill1.nix) {};
33+
mills = pkgs.callPackage (import ./pkgs/mill.nix) {inherit mill1;};
3334
postgres-fg = pkgs.callPackage (import ./pkgs/postgres-fg.nix) {};
3435
in
3536
rec {
@@ -39,7 +40,8 @@
3940
inherit swagger-ui;
4041
};
4142
inherit (sbts) sbt11 sbt17 sbt21;
42-
inherit (mills) mill17 mill21;
43+
inherit (mills) mill17 mill21 mill1_17 mill1_21;
44+
inherit mill1;
4345
inherit postgres-fg;
4446
}
4547
// scripts.vm-scripts

pkgs/mill.nix

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
{
22
mill,
3+
mill1,
34
jdk17,
45
jdk21,
56
}: {
67
mill17 = mill.override {jre = jdk17;};
78
mill21 = mill.override {jre = jdk21;};
9+
mill1_17 = mill1.override {jre = jdk17;};
10+
mill1_21 = mill1.override {jre = jdk21;};
811
}

pkgs/mill1.nix

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
lib,
3+
stdenv,
4+
fetchurl,
5+
jre,
6+
makeWrapper,
7+
which
8+
}:
9+
10+
stdenv.mkDerivation (finalAttrs: {
11+
pname = "mill";
12+
version = "1.0.3";
13+
14+
src = fetchurl {
15+
url = "https://repo1.maven.org/maven2/com/lihaoyi/mill-dist/${finalAttrs.version}/mill-dist-${finalAttrs.version}.exe";
16+
hash = "sha256-T/Wl9A6iBt12so0SO+G8sfkiahyJp0/NqH7Rs1g2FSU=";
17+
};
18+
19+
nativeBuildInputs = [ makeWrapper which ];
20+
21+
dontUnpack = true;
22+
dontConfigure = true;
23+
dontBuild = true;
24+
25+
# this is mostly downloading a pre-built artifact
26+
preferLocal = true;
27+
28+
installPhase = ''
29+
runHook preInstall
30+
install -Dm555 "$src" "$out/bin/.mill-wrapped"
31+
# can't use wrapProgram because it sets --argv0
32+
makeWrapper "$out/bin/.mill-wrapped" "$out/bin/mill" \
33+
--prefix PATH : "${jre}/bin" \
34+
--set JAVA_HOME "${jre}"
35+
runHook postInstall
36+
'';
37+
38+
doInstallCheck = true;
39+
# The default release is a script which will do an impure download
40+
# just ensure that the application can run without network
41+
# installCheckPhase = ''
42+
# $out/bin/mill --help > /dev/null
43+
# '';
44+
45+
meta = with lib; {
46+
homepage = "https://com-lihaoyi.github.io/mill/";
47+
license = licenses.mit;
48+
description = "Build tool for Scala, Java and more";
49+
mainProgram = "mill";
50+
longDescription = ''
51+
Mill is a build tool borrowing ideas from modern tools like Bazel, to let you build
52+
your projects in a way that's simple, fast, and predictable. Mill has built in
53+
support for the Scala programming language, and can serve as a replacement for
54+
SBT, but can also be extended to support any other language or platform via
55+
modules (written in Java or Scala) or through an external subprocesses.
56+
'';
57+
maintainers = with maintainers; [
58+
scalavision
59+
zenithal
60+
];
61+
platforms = lib.platforms.all;
62+
};
63+
})

0 commit comments

Comments
 (0)