diff --git a/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java b/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java index 503419a4..f4dabe47 100644 --- a/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java +++ b/client/src/main/java/org/mvndaemon/mvnd/client/DefaultClient.java @@ -250,7 +250,12 @@ public class DefaultClient implements Client { .or(() -> Optional.ofNullable(parameters.mavenRepoLocal()).map(Path::toString)); repo.ifPresent(r -> Environment.MAVEN_REPO_LOCAL.addCommandLineOption(args, r)); - Environment.MVND_TERMINAL_WIDTH.addCommandLineOption(args, Integer.toString(output.getTerminalWidth())); + String width = Optional.ofNullable(Environment.MVND_TERMINAL_WIDTH.removeCommandLineOption(args)) + .orElseGet(() -> { + int w = output.getTerminalWidth(); + return Integer.toString(w > 0 ? Math.max(w, 80) : 120); + }); + Environment.MVND_TERMINAL_WIDTH.addCommandLineOption(args, width); Path dir; if (Environment.MAVEN_FILE.hasCommandLineOption(args)) { diff --git a/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalOutput.java b/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalOutput.java index 39788640..5e99eecc 100644 --- a/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalOutput.java +++ b/common/src/main/java/org/mvndaemon/mvnd/common/logging/TerminalOutput.java @@ -35,6 +35,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.Consumer; import java.util.stream.Collector; import java.util.stream.Collectors; +import org.fusesource.jansi.internal.CLibrary; import org.jline.terminal.Size; import org.jline.terminal.Terminal; import org.jline.terminal.TerminalBuilder; @@ -147,7 +148,12 @@ public class TerminalOutput implements ClientOutput { public TerminalOutput(boolean noBuffering, int rollingWindowSize, Path logFile) throws IOException { this.start = System.currentTimeMillis(); - this.terminal = TerminalBuilder.terminal(); + TerminalBuilder builder = TerminalBuilder.builder(); + boolean outRedirected = CLibrary.isatty(0) == 1 && CLibrary.isatty(1) == 0; + if (outRedirected) { + builder.dumb(true); + } + this.terminal = builder.build(); this.dumb = terminal.getType().startsWith("dumb"); this.noBuffering = noBuffering; this.linesPerProject = rollingWindowSize;