|
1 | | -diff --git a/dist/package.mill b/dist/package.mill |
2 | | -index c16347a6a19..f1c2303e45b 100644 |
3 | | ---- a/dist/package.mill |
4 | | -+++ b/dist/package.mill |
5 | | -@@ -336,84 +336,6 @@ object `package` extends InstallModule { |
6 | | - |
7 | | - object JvmWorkerGraalvm extends JvmWorkerModule { |
8 | | - def jvmId = build.Settings.graalvmJvmId |
9 | | -- |
10 | | -- import coursier.cache.{ArchiveCache, FileCache} |
11 | | -- import coursier.jvm.{JavaHome, JvmCache} |
12 | | -- import coursier.util.{Task => CsTask} |
13 | | -- import mill.api.Result |
14 | | -- import scala.util.Properties.isWin |
15 | | -- |
16 | | -- def javaHome: T[Option[PathRef]] = Task { |
17 | | -- Option(jvmId()).filter(_ != "").map { id => |
18 | | -- val path = resolveJavaHome( |
19 | | -- id = id, |
20 | | -- coursierCacheCustomizer = coursierCacheCustomizer(), |
21 | | -- ctx = Some(Task.ctx()), |
22 | | -- jvmIndexVersion = jvmIndexVersion(), |
23 | | -- useShortPaths = isWin && ( |
24 | | -- jvmId().startsWith("graalvm") || jvmId().startsWith("liberica-nik") |
25 | | -- ) |
26 | | -- ).get |
27 | | -- // Java home is externally managed, better revalidate it at least once |
28 | | -- PathRef(path, quick = true).withRevalidateOnce |
29 | | -- } |
30 | | -- } |
31 | | -- |
32 | | -- def resolveJavaHome( |
33 | | -- id: String, |
34 | | -- ctx: Option[mill.define.TaskCtx] = None, |
35 | | -- coursierCacheCustomizer: Option[FileCache[CsTask] => FileCache[CsTask]] = None, |
36 | | -- jvmIndexVersion: String = mill.api.BuildInfo.coursierJvmIndexVersion, |
37 | | -- useShortPaths: Boolean = false |
38 | | -- ): Result[os.Path] = { |
39 | | -- val coursierCache0 = |
40 | | -- FileCache() // .withLogger(new CoursierTickerResolutionLogger(Task.ctx)) |
41 | | -- val shortPathDirOpt = Option.when(useShortPaths) { |
42 | | -- if (isWin) |
43 | | -- // On Windows, prefer to use System.getenv over sys.env (or ctx.env for |
44 | | -- // now), as the former respects the case-insensitiveness of env vars on |
45 | | -- // Windows, while the latter doesn't |
46 | | -- os.Path(System.getenv("UserProfile")) / ".mill/cache/jvm" |
47 | | -- else { |
48 | | -- val cacheBase = ctx.map(_.env) |
49 | | -- .getOrElse(sys.env) |
50 | | -- .get("XDG_CACHE_HOME") |
51 | | -- .map(os.Path(_)) |
52 | | -- .getOrElse(os.home / ".cache") |
53 | | -- cacheBase / "mill/jvm" |
54 | | -- } |
55 | | -- } |
56 | | -- val jvmCache = JvmCache() |
57 | | -- .withArchiveCache( |
58 | | -- ArchiveCache() |
59 | | -- .withCache(coursierCache0) |
60 | | -- // .withShortPathDirectory(shortPathDirOpt.map(_.toIO)) |
61 | | -- ) |
62 | | -- .withIndex(Jvm.jvmIndex0(ctx, coursierCacheCustomizer, jvmIndexVersion)) |
63 | | -- val javaHome = JavaHome() |
64 | | -- .withCache(jvmCache) |
65 | | -- // when given a version like "17", always pick highest version in the index |
66 | | -- // rather than the highest already on disk |
67 | | -- .withUpdate(true) |
68 | | -- val file = os.Path(javaHome.get(id).unsafeRun()(coursierCache0.ec)) |
69 | | -- val finalDir = shortPathDirOpt match { |
70 | | -- case None => file |
71 | | -- case Some(shortPathDir) => |
72 | | -- val sha1 = { |
73 | | -- import java.math.BigInteger |
74 | | -- import java.security.MessageDigest |
75 | | -- val bytes = MessageDigest.getInstance("SHA-1").digest(file.toString.getBytes) |
76 | | -- val baseSha1 = new BigInteger(1, bytes).toString(16) |
77 | | -- "0" * (40 - baseSha1.length) + baseSha1 |
78 | | -- } |
79 | | -- val dir = shortPathDir / sha1.take(8) |
80 | | -- os.copy(file, dir, createFolders = true) |
81 | | -- dir |
82 | | -- } |
83 | | -- Result.Success(finalDir) |
84 | | -- |
85 | | -- } |
86 | | -- |
87 | | - } |
88 | | - } |
89 | | - } |
0 commit comments