dart-sass/benchmark/generate.dart
2017-06-06 15:24:22 -07:00

42 lines
1.5 KiB
Dart
Executable File

#!/usr/bin/env dart
// Copyright 2016 Google Inc. Use of this source code is governed by an
// MIT-style license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.
import 'dart:async';
import 'dart:io';
import 'dart:math' as math;
main() async {
var sources = new Directory("benchmark/source");
if (!await sources.exists()) await sources.create();
await writeNTimes("${sources.path}/small_plain.scss", ".foo {a: b}", 4);
await writeNTimes(
"${sources.path}/large_plain.scss", ".foo {a: b}", math.pow(2, 17));
await writeNTimes("${sources.path}/preceding_sparse_extend.scss",
".foo {a: b}", math.pow(2, 17),
header: '.x {@extend .y}', footer: '.y {a: b}');
await writeNTimes("${sources.path}/following_sparse_extend.scss",
".foo {a: b}", math.pow(2, 17),
header: '.y {a: b}', footer: '.x {@extend .y}');
await writeNTimes("${sources.path}/preceding_dense_extend.scss",
".foo {a: b}", math.pow(2, 17),
header: '.bar {@extend .foo}');
await writeNTimes("${sources.path}/following_dense_extend.scss",
".foo {a: b}", math.pow(2, 17),
footer: '.bar {@extend .foo}');
}
Future writeNTimes(String path, String text, num times,
{String header, String footer}) async {
print("Generating $path...");
var file = new File(path).openWrite();
if (header != null) file.writeln(header);
for (var i = 0; i < times; i++) {
file.writeln(text);
}
if (footer != null) file.writeln(footer);
await file.close();
}