| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'dart:io'; |
| |
| import 'package:csv/csv.dart'; |
| |
| void main() { |
| var csv = new CsvCodec(eol: "\n"); |
| var data = csv.decode(new File("data.csv").readAsStringSync()); |
| |
| // Remove comments and empty lines. |
| data.removeWhere((row) => row.length < 3); |
| |
| var file = new File("lib/src/generated.dart").openSync(mode: FileMode.WRITE); |
| file.writeStringSync(""" |
| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| // Don't modify this file by hand! It's generated by tool/generate.dart. |
| |
| /// Whether the glyph getters return plain ASCII, as opposed to Unicode |
| /// characters or sequences. |
| /// |
| /// Defaults to `false`. |
| bool get ascii => _ascii; |
| var _ascii = false; |
| set ascii(bool value) { |
| _ascii = value; |
| if (value) { |
| """); |
| |
| for (var glyph in data) { |
| file.writeStringSync("_${glyph[0]} = ${_quote(glyph[2])};"); |
| } |
| |
| file.writeStringSync("} else {"); |
| |
| for (var glyph in data) { |
| file.writeStringSync("_${glyph[0]} = ${_quote(glyph[1])};"); |
| } |
| |
| file.writeStringSync("}}"); |
| |
| for (var glyph in data) { |
| for (var line in glyph[3].split("\n")) { |
| file.writeStringSync("/// $line\n"); |
| } |
| |
| file.writeStringSync(""" |
| /// |
| /// If [ascii] is `false`, this is "${glyph[1]}". If it's `true`, this is |
| /// "${glyph[2]}" instead. |
| String get ${glyph[0]} => _${glyph[0]}; |
| var _${glyph[0]} = ${_quote(glyph[1])}; |
| """); |
| } |
| |
| var result = Process.runSync( |
| "pub", ["run", "dart_style:format", "-w", "lib/src/generated.dart"]); |
| print(result.stderr); |
| exit(result.exitCode); |
| } |
| |
| String _quote(String input) => input.contains('"') ? "'$input'" : '"$input"'; |