aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
diff options
context:
space:
mode:
authorGravatar Florian Weikert <fwe@google.com>2015-11-11 14:48:41 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-11-12 09:00:04 +0000
commit90670386407b5e1e1964f7c7b30ad4d2c25ab471 (patch)
tree064f15c57a0dcac91bab6990c3b07219d1a996d9 /src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
parent1bf13d2cfb728f5e10f07579690093a189ebc7e6 (diff)
Removed double trailing periods in console output.
-- MOS_MIGRATED_REVID=107582017
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
index a39db67030..a15583ac08 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
@@ -15,6 +15,7 @@ package com.google.devtools.build.lib.runtime;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterators;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventKind;
@@ -29,6 +30,7 @@ import java.io.IOException;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.ThreadLocalRandom;
import java.util.logging.Logger;
import java.util.regex.Matcher;
@@ -95,6 +97,9 @@ public class FancyTerminalEventHandler extends BlazeCommandEventHandler {
"Checking for outstanding GCard expenses",
"Waiting for workstation CPU temperature to decrease");
+ private static final Set<Character> PUNCTUATION_CHARACTERS =
+ ImmutableSet.<Character>of(',', '.', ':', '?', '!', ';');
+
private final Iterator<String> messageIterator = Iterators.cycle(SPECIAL_MESSAGES);
private volatile boolean trySpecial;
private volatile Instant skipUntil = Instant.now();
@@ -331,8 +336,7 @@ public class FancyTerminalEventHandler extends BlazeCommandEventHandler {
terminal.resetTerminal();
}
writeTimestampAndLocation(event);
- terminal.writeString(event.getMessage());
- terminal.writeString(".");
+ writeStringWithPotentialPeriod(event.getMessage());
crlf();
}
@@ -344,8 +348,7 @@ public class FancyTerminalEventHandler extends BlazeCommandEventHandler {
terminal.writeString("WARNING: ");
terminal.resetTerminal();
writeTimestampAndLocation(warning);
- terminal.writeString(warning.getMessage());
- terminal.writeString(".");
+ writeStringWithPotentialPeriod(warning.getMessage());
crlf();
}
@@ -357,11 +360,24 @@ public class FancyTerminalEventHandler extends BlazeCommandEventHandler {
terminal.writeString(event.getKind() + ": ");
terminal.resetTerminal();
writeTimestampAndLocation(event);
- terminal.writeString(event.getMessage());
- // No period; info messages often end in '...'.
+ writeStringWithPotentialPeriod(event.getMessage());
crlf();
}
+ /**
+ * Writes the given String to the terminal. This method also writes a trailing period if the
+ * message doesn't end with a punctuation character.
+ */
+ private void writeStringWithPotentialPeriod(String message) throws IOException {
+ terminal.writeString(message);
+ if (!message.isEmpty()) {
+ char lastChar = message.charAt(message.length() - 1);
+ if (!PUNCTUATION_CHARACTERS.contains(lastChar)) {
+ terminal.writeString(".");
+ }
+ }
+ }
+
private void subcmd(Event subcmd) throws IOException {
previousLineErasable = false;
if (useColor) {