metals: use fixed-point mkDerivation

This allows for instance for extraJavaOpts to be correctly overridden
without needing to also implement the installPhase.
This commit is contained in:
Ben Edwards 2025-04-18 20:22:19 +01:00
parent 049be2cf6b
commit 5178484fff

View File

@ -7,15 +7,15 @@
setJavaClassPath, setJavaClassPath,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: {
pname = "metals"; pname = "metals";
version = "1.5.2"; version = "1.5.2";
deps = stdenv.mkDerivation { deps = stdenv.mkDerivation {
name = "${pname}-deps-${version}"; name = "metals-deps-${finalAttrs.version}";
buildCommand = '' buildCommand = ''
export COURSIER_CACHE=$(pwd) export COURSIER_CACHE=$(pwd)
${coursier}/bin/cs fetch org.scalameta:metals_2.13:${version} \ ${coursier}/bin/cs fetch org.scalameta:metals_2.13:${finalAttrs.version} \
-r bintray:scalacenter/releases \ -r bintray:scalacenter/releases \
-r sonatype:snapshots > deps -r sonatype:snapshots > deps
mkdir -p $out/share/java mkdir -p $out/share/java
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
makeWrapper makeWrapper
setJavaClassPath setJavaClassPath
]; ];
buildInputs = [ deps ]; buildInputs = [ finalAttrs.deps ];
dontUnpack = true; dontUnpack = true;
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/metals \ makeWrapper ${jre}/bin/java $out/bin/metals \
--add-flags "${extraJavaOpts} -cp $CLASSPATH scala.meta.metals.Main" --add-flags "${finalAttrs.extraJavaOpts} -cp $CLASSPATH scala.meta.metals.Main"
''; '';
meta = with lib; { meta = with lib; {
@ -54,4 +54,4 @@ stdenv.mkDerivation rec {
tomahna tomahna
]; ];
}; };
} })