aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
index e630939c..1ce95ac1 100644
--- a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
+++ b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
@@ -27,6 +27,7 @@ package net.fabricmc.loom.configuration.ide;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -203,13 +204,23 @@ public class RunConfig {
return runConfig;
}
- public String fromDummy(String dummy) throws IOException {
+ public String fromDummy(String dummy, boolean relativeDir, Project project) throws IOException {
String dummyConfig;
try (InputStream input = SetupIntelijRunConfigs.class.getClassLoader().getResourceAsStream(dummy)) {
dummyConfig = new String(input.readAllBytes(), StandardCharsets.UTF_8);
}
+ String runDir = this.runDir;
+
+ if (relativeDir && project.getRootProject() != project) {
+ Path rootPath = project.getRootDir().toPath();
+ Path projectPath = project.getProjectDir().toPath();
+ String relativePath = rootPath.relativize(projectPath).toString();
+
+ runDir = relativePath + "/" + runDir;
+ }
+
dummyConfig = dummyConfig.replace("%NAME%", configName);
dummyConfig = dummyConfig.replace("%MAIN_CLASS%", mainClass);
dummyConfig = dummyConfig.replace("%ECLIPSE_PROJECT%", eclipseProjectName);