aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
index 344071f0..1d5ebb69 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
@@ -589,8 +589,7 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
// Download and extract intermediary
if (getExtension().isLegacyForge()) {
- Path intermediaryV1Tiny = getMinecraftProvider().file("intermediary-v1.tiny").toPath();
- generateDummyIntermediary(getProject().getLogger(), intermediaryV1Tiny, intermediaryTiny);
+ generateDummyIntermediary(getProject().getLogger(), intermediaryTiny);
} else {
String encodedMinecraftVersion = UrlEscapers.urlFragmentEscaper().escape(getMinecraftProvider().minecraftVersion());
String intermediaryArtifactUrl = getExtension().getIntermediaryUrl(encodedMinecraftVersion);
@@ -604,13 +603,16 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
return intermediaryTiny;
}
- private void generateDummyIntermediary(Logger logger, Path tinyV1, Path tinyV2) throws IOException {
+ private void generateDummyIntermediary(Logger logger, Path tinyV2) throws IOException {
Stopwatch stopwatch = Stopwatch.createStarted();
logger.lifecycle(":generating dummy intermediary");
Path minecraftJar = getExtension().getMinecraftProvider().getMergedJar().toPath();
- Files.deleteIfExists(tinyV1); // file must not exist, otherwise stitch will try to read it
+ // create a temporary folder into which stitch will output the v1 file
+ // we cannot just create a temporary file directly, cause stitch will try to read it if it exists
+ Path tmpFolder = Files.createTempDirectory("dummy-intermediary");
+ Path tinyV1 = tmpFolder.resolve("intermediary-v1.tiny");
CommandGenerateIntermediary command = new CommandGenerateIntermediary();
LoggerFilter.withSystemOutAndErrSuppressed(() -> {
@@ -627,6 +629,9 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
MappingReader.read(tinyV1, writer);
}
+ Files.delete(tinyV1);
+ Files.delete(tmpFolder);
+
logger.lifecycle(":generated dummy intermediary in " + stopwatch.stop());
}