Skip to content

Commit 31ecc35

Browse files
committed
Update language_color_generator
- refactor code - generate const map - move to /tool directory
1 parent 41a8592 commit 31ecc35

File tree

3 files changed

+41
-56
lines changed

3 files changed

+41
-56
lines changed

lib/src/const/language_color.dart

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/tool/language_color_generator.dart

Lines changed: 0 additions & 54 deletions
This file was deleted.

tool/language_color_generator.dart

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import 'dart:io';
2+
3+
import 'package:http/http.dart' as http;
4+
import 'package:yaml/yaml.dart';
5+
6+
const _indent = ' ';
7+
const _path = './lib/src/const/language_color.dart';
8+
const _url = 'https://raw.githubusercontent.com/'
9+
'github/linguist/master/lib/linguist/languages.yml';
10+
11+
Future main() async {
12+
var response = await http.Client().get(_url);
13+
14+
var yaml = loadYaml(response.body) as YamlMap;
15+
var stringBuffer = StringBuffer()
16+
..writeln('// GENERATED CODE - DO NOT MODIFY BY HAND')
17+
..writeln('// VERSION OF ${DateTime.now().toIso8601String()}')
18+
..writeln()
19+
..writeln('const languagesColor = <String, String>{');
20+
21+
var map = yaml.value as YamlMap;
22+
var languages = map.keys.cast<String>().toList(growable: false)..sort();
23+
24+
for (var language in languages) {
25+
var color = map[language]['color']?.toString()?.toUpperCase() ?? '#000000';
26+
27+
language = language.replaceAll("'", "\\'");
28+
29+
stringBuffer.writeln("$_indent'$language': '$color',");
30+
}
31+
32+
stringBuffer.writeln('};');
33+
34+
File(_path)
35+
..createSync()
36+
..writeAsStringSync(stringBuffer.toString());
37+
38+
print('File created with success');
39+
}

0 commit comments

Comments
 (0)