Skip to content

Commit 03454ec

Browse files
committed
Use JavaExecSpec details for logging info
1 parent cc8ce77 commit 03454ec

File tree

2 files changed

+34
-20
lines changed

2 files changed

+34
-20
lines changed

gradleutils-shared/src/main/java/net/minecraftforge/gradleutils/shared/EnhancedTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ default DirectoryProperty workingProjectDirectory() {
7474
/// @param ext The extension to use for the file
7575
/// @return A provider for the file
7676
default @Internal Provider<RegularFile> getDefaultOutputFile(String ext) {
77-
return this.getOutputFile(String.format("output.%s", ext));
77+
return this.getOutputFile("output." + ext);
7878
}
7979

8080
/// The default output log file to use for this task.

gradleutils-shared/src/main/java/net/minecraftforge/gradleutils/shared/ToolExecBase.java

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77
import org.codehaus.groovy.runtime.DefaultGroovyMethods;
88
import org.gradle.api.DefaultTask;
99
import org.gradle.api.Transformer;
10-
import org.gradle.api.file.*;
10+
import org.gradle.api.file.ConfigurableFileCollection;
11+
import org.gradle.api.file.DirectoryProperty;
12+
import org.gradle.api.file.FileSystemLocation;
13+
import org.gradle.api.file.FileSystemLocationProperty;
14+
import org.gradle.api.file.RegularFileProperty;
1115
import org.gradle.api.logging.LogLevel;
1216
import org.gradle.api.logging.LoggingManager;
1317
import org.gradle.api.model.ObjectFactory;
@@ -16,20 +20,30 @@
1620
import org.gradle.api.provider.Property;
1721
import org.gradle.api.provider.Provider;
1822
import org.gradle.api.provider.ProviderFactory;
19-
import org.gradle.api.tasks.*;
23+
import org.gradle.api.tasks.Classpath;
2024
import org.gradle.api.tasks.Console;
25+
import org.gradle.api.tasks.Input;
26+
import org.gradle.api.tasks.InputFiles;
27+
import org.gradle.api.tasks.Internal;
28+
import org.gradle.api.tasks.JavaExec;
29+
import org.gradle.api.tasks.Nested;
30+
import org.gradle.api.tasks.Optional;
31+
import org.gradle.api.tasks.OutputFile;
32+
import org.gradle.api.tasks.TaskAction;
2133
import org.gradle.jvm.toolchain.JavaLanguageVersion;
2234
import org.gradle.jvm.toolchain.JavaLauncher;
2335
import org.gradle.jvm.toolchain.JavaToolchainService;
24-
import org.gradle.jvm.toolchain.JavaToolchainSpec;
2536
import org.gradle.process.ExecOperations;
2637
import org.gradle.process.ExecResult;
2738
import org.jetbrains.annotations.MustBeInvokedByOverriders;
2839
import org.jetbrains.annotations.Nullable;
2940
import org.jetbrains.annotations.UnknownNullability;
3041

3142
import javax.inject.Inject;
32-
import java.io.*;
43+
import java.io.File;
44+
import java.io.FileWriter;
45+
import java.io.IOException;
46+
import java.io.PrintWriter;
3347
import java.util.ArrayList;
3448
import java.util.HashMap;
3549
import java.util.List;
@@ -84,7 +98,7 @@ public abstract class ToolExecBase<P extends EnhancedProblems> extends DefaultTa
8498

8599
protected abstract @Console Property<LogLevel> getStandardErrorLogLevel();
86100

87-
protected abstract @OutputFile RegularFileProperty getLogFile();
101+
protected abstract @Internal RegularFileProperty getLogFile();
88102
//endregion
89103

90104
protected abstract @Inject ObjectFactory getObjects();
@@ -152,6 +166,8 @@ protected void addArguments() { }
152166
/// [#addArguments()] never being run.
153167
@TaskAction
154168
protected ExecResult exec() throws IOException {
169+
var logger = getLogger();
170+
155171
this.args = new ArrayList<>();
156172
this.jvmArgs = new ArrayList<>();
157173
this.environment = new HashMap<>();
@@ -162,7 +178,6 @@ protected ExecResult exec() throws IOException {
162178

163179
var args = DefaultGroovyMethods.collect(this.args, Closures.<Provider<String>, String>function(Provider::get));
164180
var jvmArgs = DefaultGroovyMethods.collect(this.jvmArgs, Closures.<Provider<String>, String>function(Provider::get));
165-
this.getLogger().info("{} {}", this.getClasspath().getAsPath(), String.join(" ", args));
166181

167182
var stdOutLevel = this.getStandardOutputLogLevel().get();
168183
var stdErrLevel = this.getStandardErrorLogLevel().get();
@@ -178,15 +193,13 @@ protected ExecResult exec() throws IOException {
178193
javaLauncher = getJavaLauncher().get();
179194
}
180195

181-
final File workingDirectory = this.getWorkingDir().get().getAsFile();
182-
if (!workingDirectory.exists())
183-
workingDirectory.mkdirs();
196+
var workingDirectory = this.getWorkingDir().map(problems.ensureFileLocation()).get().getAsFile();
184197

185-
try (PrintWriter log = new PrintWriter(new FileWriter(this.getLogFile().get().getAsFile()), true)) {
186-
return this.getExecOperations().javaexec(spec -> {
198+
try (var log = new PrintWriter(new FileWriter(this.getLogFile().getAsFile().get()), true)) {
199+
return getExecOperations().javaexec(spec -> {
187200
spec.setIgnoreExitValue(true);
188201

189-
spec.setWorkingDir(this.getWorkingDir());
202+
spec.setWorkingDir(workingDirectory);
190203
spec.setClasspath(this.getClasspath());
191204
spec.getMainClass().set(this.getMainClass());
192205
spec.setExecutable(javaLauncher.getExecutablePath().getAsFile().getAbsolutePath());
@@ -197,24 +210,25 @@ protected ExecResult exec() throws IOException {
197210

198211
spec.setStandardOutput(SharedUtil.toLog(
199212
line -> {
200-
this.getLogger().log(stdOutLevel, line);
213+
logger.log(stdOutLevel, line);
201214
log.println(line);
202215
}
203216
));
204217
spec.setErrorOutput(SharedUtil.toLog(
205218
line -> {
206-
this.getLogger().log(stdErrLevel, line);
219+
logger.log(stdErrLevel, line);
207220
log.println(line);
208221
}
209222
));
210223

211224
log.println("Java Launcher: " + spec.getExecutable());
212-
log.println("Working directory: " + workingDirectory.getAbsolutePath());
213-
log.println("Main class: " + this.getMainClass().get());
214-
log.println("Arguments: " + args.stream().collect(Collectors.joining(", ", "'", "'")));
215-
log.println("JVM Arguments: " + jvmArgs.stream().collect(Collectors.joining(", ", "'", "'")));
225+
log.println("Working directory: " + spec.getWorkingDir().getAbsolutePath());
226+
log.println("Main class: " + spec.getMainClass().get());
227+
log.println("Arguments: '" + String.join(", ", spec.getArgs()) + '\'');
228+
log.println("JVM Arguments: '" + String.join(", ", spec.getAllJvmArgs()) + '\'');
216229
log.println("Classpath:");
217-
getClasspath().forEach(f -> log.println(" - " + f.getAbsolutePath()));
230+
for (var f : getClasspath())
231+
log.println(" - " + f.getAbsolutePath());
218232
log.println("====================================");
219233
});
220234
}

0 commit comments

Comments
 (0)