Skip to content

Commit c452388

Browse files
dannypernikdannyperniknex3ntkme
authored
Add timestamp to printed compile statement (#1876)
Co-authored-by: dannypernik <dannypernik@mail.com> Co-authored-by: Natalie Weizenbaum <nweiz@google.com> Co-authored-by: なつき <i@ntk.me>
1 parent 13cc7d2 commit c452388

File tree

5 files changed

+113
-98
lines changed

5 files changed

+113
-98
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## 1.58.2
22

3+
### Command Line Interface
4+
5+
* Add a timestamp to messages printed in `--watch` mode.
6+
37
* Print better `calc()`-based suggestions for `/`-as-division expression that
48
contain calculation-incompatible constructs like unary minus.
59

lib/src/executable/compile_stylesheet.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,21 @@ Future<void> compileStylesheet(ExecutableOptions options, StylesheetGraph graph,
127127

128128
if (options.quiet || (!options.update && !options.watch)) return;
129129
var buffer = StringBuffer();
130-
if (options.color) buffer.write('\u001b[32m');
131130

132131
var sourceName = source == null ? 'stdin' : p.prettyUri(p.toUri(source));
133132
// `destination` is guaranteed to be non-null in update and watch mode.
134133
var destinationName = p.prettyUri(p.toUri(destination!));
134+
135+
var nowStr = DateTime.now().toString();
136+
// Remove fractional seconds from printed timestamp
137+
var timestamp = nowStr.substring(0, nowStr.length - 7);
138+
139+
if (options.color) buffer.write('\u001b[90m');
140+
buffer.write('[$timestamp] ');
141+
if (options.color) buffer.write('\u001b[32m');
135142
buffer.write('Compiled $sourceName to $destinationName.');
136143
if (options.color) buffer.write('\u001b[0m');
144+
137145
print(buffer);
138146
}
139147

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: sass
2-
version: 1.58.2-dev
2+
version: 1.58.2
33
description: A Sass implementation in Dart.
44
homepage: https://github.com/sass/dart-sass
55

test/cli/shared/update.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ void sharedTests(Future<TestProcess> runSass(Iterable<String> arguments)) {
1818
await d.file("test.scss", "a {b: c}").create();
1919

2020
var sass = await update(["test.scss:out.css"]);
21-
expect(sass.stdout, emits('Compiled test.scss to out.css.'));
21+
expect(sass.stdout, emits(endsWith('Compiled test.scss to out.css.')));
2222
await sass.shouldExit(0);
2323

2424
await d
@@ -32,7 +32,7 @@ void sharedTests(Future<TestProcess> runSass(Iterable<String> arguments)) {
3232
await d.file("test.scss", "a {b: c}").create();
3333

3434
var sass = await update(["test.scss:out.css"]);
35-
expect(sass.stdout, emits('Compiled test.scss to out.css.'));
35+
expect(sass.stdout, emits(endsWith('Compiled test.scss to out.css.')));
3636
await sass.shouldExit(0);
3737

3838
await d
@@ -45,14 +45,14 @@ void sharedTests(Future<TestProcess> runSass(Iterable<String> arguments)) {
4545
await d.file("test.scss", "@import 'other'").create();
4646

4747
var sass = await update(["test.scss:out.css"]);
48-
expect(sass.stdout, emits('Compiled test.scss to out.css.'));
48+
expect(sass.stdout, emits(endsWith('Compiled test.scss to out.css.')));
4949
await sass.shouldExit(0);
5050

5151
await tick;
5252
await d.file("other.scss", "x {y: z}").create();
5353

5454
sass = await update(["test.scss:out.css"]);
55-
expect(sass.stdout, emits('Compiled test.scss to out.css.'));
55+
expect(sass.stdout, emits(endsWith('Compiled test.scss to out.css.')));
5656
await sass.shouldExit(0);
5757

5858
await d
@@ -66,16 +66,16 @@ void sharedTests(Future<TestProcess> runSass(Iterable<String> arguments)) {
6666
await d.file("test2.scss", r"$var: 2; @import 'other'").create();
6767

6868
var sass = await update(["test1.scss:out1.css", "test2.scss:out2.css"]);
69-
expect(sass.stdout, emits('Compiled test1.scss to out1.css.'));
70-
expect(sass.stdout, emits('Compiled test2.scss to out2.css.'));
69+
expect(sass.stdout, emits(endsWith('Compiled test1.scss to out1.css.')));
70+
expect(sass.stdout, emits(endsWith('Compiled test2.scss to out2.css.')));
7171
await sass.shouldExit(0);
7272

7373
await tick;
7474
await d.file("other.scss", r"x {y: $var}").create();
7575

7676
sass = await update(["test1.scss:out1.css", "test2.scss:out2.css"]);
77-
expect(sass.stdout, emits('Compiled test1.scss to out1.css.'));
78-
expect(sass.stdout, emits('Compiled test2.scss to out2.css.'));
77+
expect(sass.stdout, emits(endsWith('Compiled test1.scss to out1.css.')));
78+
expect(sass.stdout, emits(endsWith('Compiled test2.scss to out2.css.')));
7979
await sass.shouldExit(0);
8080

8181
await d
@@ -90,7 +90,7 @@ void sharedTests(Future<TestProcess> runSass(Iterable<String> arguments)) {
9090
var sass = await update(["-:out.css"]);
9191
sass.stdin.writeln("a {b: c}");
9292
sass.stdin.close();
93-
expect(sass.stdout, emits('Compiled stdin to out.css.'));
93+
expect(sass.stdout, emits(endsWith('Compiled stdin to out.css.')));
9494
await sass.shouldExit(0);
9595

9696
await d
@@ -100,7 +100,7 @@ void sharedTests(Future<TestProcess> runSass(Iterable<String> arguments)) {
100100
sass = await update(["-:out.css"]);
101101
sass.stdin.writeln("x {y: z}");
102102
sass.stdin.close();
103-
expect(sass.stdout, emits('Compiled stdin to out.css.'));
103+
expect(sass.stdout, emits(endsWith('Compiled stdin to out.css.')));
104104
await sass.shouldExit(0);
105105

106106
await d
@@ -142,7 +142,7 @@ void sharedTests(Future<TestProcess> runSass(Iterable<String> arguments)) {
142142
await d.file("test2.scss", "d {e: f}").create();
143143

144144
var sass = await update(["test1.scss:out1.css", "test2.scss:out2.css"]);
145-
expect(sass.stdout, emits('Compiled test2.scss to out2.css.'));
145+
expect(sass.stdout, emits(endsWith('Compiled test2.scss to out2.css.')));
146146
await sass.shouldExit(0);
147147

148148
await d.file("out1.css", "x {y: z}").validate();

0 commit comments

Comments
 (0)