David PHAM-VAN

Improve gfonts updater

@@ -17,12 +17,14 @@ @@ -17,12 +17,14 @@
17 import 'dart:convert'; 17 import 'dart:convert';
18 import 'dart:io'; 18 import 'dart:io';
19 19
  20 +import 'package:args/args.dart';
  21 +
20 String _capitalize(String s) { 22 String _capitalize(String s) {
21 if (s.isEmpty) return s; 23 if (s.isEmpty) return s;
22 return '${s[0].toUpperCase()}${s.substring(1)}'; 24 return '${s[0].toUpperCase()}${s.substring(1)}';
23 } 25 }
24 26
25 -String _uncapitalize(String s) { 27 +String _uncapitalized(String s) {
26 if (s.isEmpty) return s; 28 if (s.isEmpty) return s;
27 return '${s[0].toLowerCase()}${s.substring(1)}'; 29 return '${s[0].toLowerCase()}${s.substring(1)}';
28 } 30 }
@@ -43,7 +45,7 @@ class FontDesc { @@ -43,7 +45,7 @@ class FontDesc {
43 final String name; 45 final String name;
44 46
45 String get dartFamily => 47 String get dartFamily =>
46 - _uncapitalize(family == null ? key : family!.replaceAll(' ', '')); 48 + _uncapitalized(family == null ? key : family!.replaceAll(' ', ''));
47 49
48 String get fontDartName => dartFamily + (sub ?? ''); 50 String get fontDartName => dartFamily + (sub ?? '');
49 51
@@ -52,7 +54,7 @@ class FontDesc { @@ -52,7 +54,7 @@ class FontDesc {
52 54
53 Iterable<FontDesc> getFonts(Map m) sync* { 55 Iterable<FontDesc> getFonts(Map m) sync* {
54 for (final f in m['items']) { 56 for (final f in m['items']) {
55 - final family = _uncapitalize(f['family'].replaceAll(' ', '')); 57 + final family = _uncapitalized(f['family'].replaceAll(' ', ''));
56 58
57 for (final s in f['files'].entries) { 59 for (final s in f['files'].entries) {
58 var sub = _capitalize(s.key); 60 var sub = _capitalize(s.key);
@@ -103,13 +105,30 @@ Iterable<FontDesc> getFonts(Map m) sync* { @@ -103,13 +105,30 @@ Iterable<FontDesc> getFonts(Map m) sync* {
103 } 105 }
104 106
105 void main(List<String> args) async { 107 void main(List<String> args) async {
  108 + final parser = ArgParser();
  109 + parser.addOption(
  110 + 'key',
  111 + abbr: 'k',
  112 + mandatory: true,
  113 + help:
  114 + 'Google API key, can be generated here: https://console.cloud.google.com/apis/credentials',
  115 + );
  116 + final ArgResults results;
  117 + try {
  118 + results = parser.parse(args);
  119 + } catch (e) {
  120 + print(parser.usage);
  121 + print(e);
  122 + return;
  123 + }
  124 +
106 final f = File('fonts.json'); 125 final f = File('fonts.json');
107 final d = StringBuffer(); 126 final d = StringBuffer();
108 127
109 if (f.existsSync()) { 128 if (f.existsSync()) {
110 d.write(await f.readAsString()); 129 d.write(await f.readAsString());
111 } else { 130 } else {
112 - final key = args[0]; 131 + final key = results['key'];
113 final http = HttpClient(); 132 final http = HttpClient();
114 print('Downloading...'); 133 print('Downloading...');
115 final q = await http.getUrl(Uri.parse( 134 final q = await http.getUrl(Uri.parse(
@@ -6,10 +6,11 @@ issue_tracker: https://github.com/DavBfr/dart_pdf/issues @@ -6,10 +6,11 @@ issue_tracker: https://github.com/DavBfr/dart_pdf/issues
6 version: 1.0.0 6 version: 1.0.0
7 7
8 environment: 8 environment:
9 - sdk: ">=2.12.0 <3.0.0"  
10 - flutter: ">=1.16.0" 9 + sdk: ">=2.18.0 <3.0.0"
  10 + flutter: ">=3.7.0"
11 11
12 dependencies: 12 dependencies:
  13 + args:
13 flutter: 14 flutter:
14 sdk: flutter 15 sdk: flutter
15 markdown: 16 markdown: