Skip to content
Merged

#55 #56

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion example/bin/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ void main(List<String> arguments) {
print("CAT Type = $catType");
print("2");
print("2");
}
}
1 change: 1 addition & 0 deletions example/sass/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@

body {
background: aquamarine;
color: blue;
}
73 changes: 46 additions & 27 deletions lib/processor.dart
Original file line number Diff line number Diff line change
Expand Up @@ -75,38 +75,24 @@ class Processor {
stopwatch.stop();

final taskStdOut = result.stdout.toString();
final isDartCompileError = arguments.contains("compile");
final isDartCompileTask = executable == "dart" && arguments.contains("compile");
final isDartCompileError = isDartCompileTask && taskStdOut.contains("Error");
// final isDartCompileWarning = isDartCompileTask && taskStdOut.contains("Warning");

if (result.stdout.toString().trim().isNotEmpty && !isDartCompileError) {
stdout.writeln(_printTime(stopwatch, result.stdout));
if (debug) {
log.info("[task $name] ${AnsiStyles.magenta("[${result.stdout}]")}");
}
// Print non dart compile errors - e.g `dart sass ...`
if (result.stderr.toString().trim().isNotEmpty && !isDartCompileTask) {
_printNoneDartCompileTaskErrors(result);
}

if (result.stderr.toString().trim().isNotEmpty) {
final containsWarning =
result.stderr.toString().trim().toLowerCase().contains("warning");
final containsError =
result.stderr.toString().trim().toLowerCase().contains("error");
if (containsWarning && !containsError) {
if (warnings) {
stderr.writeln(
AnsiStyles.yellowBright("⚠ [task $name] ${result.stderr}"));
} else {
print(_printTime(stopwatch, name));
}
} else {
stderr.writeln(AnsiStyles.red("✖ [task $name] ${result.stderr}"));
throw ProcessingCompileException();
}
}
// Print non dart compile warnings
_printNonDartCompileTaskWarnings(result);

// Print Dart compile errors
if (arguments.contains("compile") && taskStdOut.contains("Error")) {
print(AnsiStyles.red(
"✖ [task $name] ${AnsiStyles.redBright.bold(taskStdOut)}"));
throw ProcessingCompileException();
if (isDartCompileError) {
_printDartCompileTaskErrors(taskStdOut);
} else {
// All dart tasks get printed here
_printDartTaskSuccess(stopwatch);
}
}

Expand Down Expand Up @@ -144,4 +130,37 @@ class Processor {
"${AnsiStyles.cyan("] completed task in took ")}"
"${AnsiStyles.white("${elapsed.inSeconds}.${elapsed.inMilliseconds % 1000}s")}");
}


void _printNoneDartCompileTaskErrors(dynamic result) {
final containsError =
result.stderr.toString().trim().toLowerCase().contains("error");
if (containsError) {
stderr.writeln(AnsiStyles.red("✖ [task $name] ${result.stderr}"));
throw ProcessingCompileException();
}
}

void _printNonDartCompileTaskWarnings(dynamic result) {
final containsWarning =
result.stderr.toString().trim().toLowerCase().contains("warning");
final containsError =
result.stderr.toString().trim().toLowerCase().contains("error");
if (containsWarning && !containsError) {
if (warnings) {
stderr.writeln(
AnsiStyles.yellowBright("⚠ [task $name] ${result.stderr}"));
}
}
}

void _printDartTaskSuccess(Stopwatch stopwatch) {
print(_printTime(stopwatch, name));
}

void _printDartCompileTaskErrors(String taskStdOut) {
print(AnsiStyles.red(
"✖ [task $name] ${AnsiStyles.redBright.bold(taskStdOut)}"));
throw ProcessingCompileException();
}
}