Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit c5779ef

Browse files
Getting better control over octorun's output
1 parent b634318 commit c5779ef

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

octorun/src/output.js

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
var endOfLine = require('os').EOL;
2+
3+
var outputResult = function (status, results, errors) {
4+
process.stdout.write(status);
5+
process.stdout.write(endOfLine);
6+
7+
if (!results) {
8+
process.stdout.write("");
9+
process.stdout.write(endOfLine);
10+
}
11+
else {
12+
if (typeof results === 'string') {
13+
process.stdout.write(results);
14+
process.stdout.write(endOfLine);
15+
}
16+
else if (Array.isArray(results)) {
17+
for (var resultIndex = 0; resultIndex < results.length; resultIndex++) {
18+
var result = results[resultIndex];
19+
if (typeof result !== 'string') {
20+
throw "Unsupported result output";
21+
}
22+
23+
process.stdout.write(result);
24+
process.stdout.write(endOfLine);
25+
}
26+
}
27+
28+
throw "Unsupported result output";
29+
}
30+
31+
if (errors) {
32+
if (typeof errors === 'string') {
33+
process.stdout.write(errors);
34+
process.stdout.write(endOfLine);
35+
}
36+
else if (Array.isArray(errors)) {
37+
for (var errorIndex = 0; errorIndex < errors.length; errorIndex++) {
38+
var error = errors[errorIndex];
39+
if (typeof error !== 'string') {
40+
throw "Unsupported result output";
41+
}
42+
43+
process.stdout.write(error);
44+
process.stdout.write(endOfLine);
45+
}
46+
}
47+
else {
48+
process.stdout.write(errors);
49+
process.stdout.write(endOfLine);
50+
}
51+
}
52+
}
53+
54+
var outputSuccess = function (results) {
55+
outputResult("success", results);
56+
}
57+
58+
var outputCustom = function (status, results) {
59+
outputResult(status, results);
60+
}
61+
62+
var outputError = function (errors) {
63+
outputResult("error", null, errors);
64+
}
65+
66+
module.exports = {
67+
success: outputSuccess,
68+
custom: outputCustom,
69+
error: outputError
70+
};

0 commit comments

Comments
 (0)