Skip to content

Commit be2d4c6

Browse files
committed
Merge pull request #4288 from arduino/builder-log-levels
arduino-builder uses log levels
2 parents bab9b6c + 98d5ff7 commit be2d4c6

14 files changed

+60
-16
lines changed

app/test/cc/arduino/i18n/ExternalProcessOutputParserTest.java

+25
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,29 @@ public void testParser5() throws Exception {
9292
assertEquals("", args[0]);
9393
}
9494

95+
@Test
96+
public void testParser6() throws Exception {
97+
Map<String, Object> output = new ExternalProcessOutputParser().parse("===info ||| Progress {0} ||| [79.31]");
98+
99+
assertEquals("info", output.get("level"));
100+
assertEquals("Progress {0}", output.get("msg"));
101+
Object[] args = (Object[]) output.get("args");
102+
assertEquals(1, args.length);
103+
assertEquals("79.31", args[0]);
104+
}
105+
106+
@Test
107+
public void testParser7() throws Exception {
108+
Map<String, Object> output = new ExternalProcessOutputParser().parse("===info ||| Using library {0} at version {1} in folder: {2} {3} ||| [Bridge 1.6.0 %2Fhome%2Ffederico%2Fmateriale%2Fworks_Arduino%2FArduino%2Fbuild%2Flinux%2Fwork%2Flibraries%2FBridge ]");
109+
110+
assertEquals("info", output.get("level"));
111+
assertEquals("Using library {0} at version {1} in folder: {2} {3}", output.get("msg"));
112+
Object[] args = (Object[]) output.get("args");
113+
assertEquals(4, args.length);
114+
assertEquals("Bridge", args[0]);
115+
assertEquals("1.6.0", args[1]);
116+
assertEquals("/home/federico/materiale/works_Arduino/Arduino/build/linux/work/libraries/Bridge", args[2]);
117+
assertEquals("", args[3]);
118+
}
119+
95120
}

arduino-core/src/cc/arduino/Compiler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public String build(CompilerProgressListener progListener, boolean exportHex) th
137137

138138
PreferencesMap prefs = loadPreferences(board, platform, aPackage, vidpid);
139139

140-
MessageConsumerOutputStream out = new MessageConsumerOutputStream(new ProgressAwareMessageConsumer(new I18NAwareMessageConsumer(System.out), progListener), "\n");
140+
MessageConsumerOutputStream out = new MessageConsumerOutputStream(new ProgressAwareMessageConsumer(new I18NAwareMessageConsumer(System.out, System.err), progListener), "\n");
141141
MessageConsumerOutputStream err = new MessageConsumerOutputStream(new I18NAwareMessageConsumer(System.err, Compiler.this), "\n");
142142

143143
callArduinoBuilder(board, platform, aPackage, vidpid, BuilderAction.COMPILE, new PumpStreamHandler(out, err));

arduino-core/src/cc/arduino/ProgressAwareMessageConsumer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public ProgressAwareMessageConsumer(MessageConsumer parent, CompilerProgressList
4848

4949
@Override
5050
public void message(String s) {
51-
if (s.startsWith("===Progress")) {
51+
if (s.startsWith("===info ||| Progress") || s.startsWith("===Progress")) {
5252
Map<String, Object> parsedMessage = parser.parse(s);
5353
Object[] args = (Object[]) parsedMessage.get("args");
5454
progressListener.progress(Double.valueOf(args[0].toString()).intValue());

arduino-core/src/cc/arduino/i18n/ExternalProcessOutputParser.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,12 @@ public Map<String, Object> parse(String s) {
5050

5151
String[] parts = SPLIT.split(s);
5252

53-
output.put("msg", parts[0]);
54-
output.put("args", parseArgs(parts[1]));
53+
int idx = 0;
54+
if (parts.length == 3) {
55+
output.put("level", parts[idx++]);
56+
}
57+
output.put("msg", parts[idx++]);
58+
output.put("args", parseArgs(parts[idx++]));
5559

5660
return output;
5761
}

arduino-core/src/cc/arduino/i18n/I18NAwareMessageConsumer.java

+22-7
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,26 @@
3939

4040
public class I18NAwareMessageConsumer implements MessageConsumer {
4141

42-
private final PrintStream ps;
42+
private final PrintStream out;
43+
private final PrintStream err;
4344
private final MessageConsumer parent;
4445
private final ExternalProcessOutputParser parser;
4546

46-
public I18NAwareMessageConsumer(PrintStream ps) {
47-
this(ps, null);
47+
public I18NAwareMessageConsumer(PrintStream out) {
48+
this(out, out, null);
4849
}
4950

50-
public I18NAwareMessageConsumer(PrintStream ps, MessageConsumer parent) {
51-
this.ps = ps;
51+
public I18NAwareMessageConsumer(PrintStream out, MessageConsumer parent) {
52+
this(out, out, parent);
53+
}
54+
55+
public I18NAwareMessageConsumer(PrintStream out, PrintStream err) {
56+
this(out, err, null);
57+
}
58+
59+
public I18NAwareMessageConsumer(PrintStream out, PrintStream err, MessageConsumer parent) {
60+
this.out = out;
61+
this.err = err;
5262
this.parent = parent;
5363
this.parser = new ExternalProcessOutputParser();
5464
}
@@ -57,14 +67,19 @@ public I18NAwareMessageConsumer(PrintStream ps, MessageConsumer parent) {
5767
public void message(String s) {
5868
if (s.startsWith("===")) {
5969
Map<String, Object> parsedMessage = parser.parse(s);
60-
ps.println(I18n.format(tr((String) parsedMessage.get("msg")), (Object[]) parsedMessage.get("args")));
70+
String translatedMessage = I18n.format(tr((String) parsedMessage.get("msg")), (Object[]) parsedMessage.get("args"));
71+
if (!parsedMessage.containsKey("level") || "".equals(parsedMessage.get("level")) || "info".equals(parsedMessage.get("level"))) {
72+
out.println(translatedMessage);
73+
} else {
74+
err.println(translatedMessage);
75+
}
6176
return;
6277
}
6378

6479
if (parent != null) {
6580
parent.message(s);
6681
} else {
67-
ps.println(s);
82+
out.println(s);
6883
}
6984
}
7085
}

build/arduino-builder-linux32-1.3.6.tar.bz2.sha

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
616acac0908c873b01b627a7902d4ffe454048bd

build/arduino-builder-linux64-1.3.6.tar.bz2.sha

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
5b427ca5f56cd38ac90b0cf2beb236dde6d7e576

build/arduino-builder-macosx-1.3.6.tar.bz2.sha

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ae2c591c663ce417c03bd04cb119ae2bc721d379

build/arduino-builder-windows-1.3.6.zip.sha

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
6ec1252e3d8c5d7975b89eb221854ed3c0d7494f

build/build.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373

7474
<property name="portable" value="false" />
7575

76-
<property name="ARDUINO-BUILDER-VERSION" value="1.3.6" />
76+
<property name="ARDUINO-BUILDER-VERSION" value="1.3.7" />
7777

7878
<!-- Libraries required for running arduino -->
7979
<fileset dir=".." id="runtime.jars">

0 commit comments

Comments
 (0)