|
5 | 5 | import 'dart:io'; |
6 | 6 |
|
7 | 7 | import 'package:args/args.dart'; |
| 8 | +import 'package:vector_graphics_compiler/src/svg/colors.dart'; |
| 9 | +import 'package:vector_graphics_compiler/vector_graphics_compiler.dart'; |
8 | 10 | import 'package:vector_graphics_compiler/src/isolate_processor.dart'; |
9 | 11 |
|
10 | 12 | final ArgParser argParser = ArgParser() |
| 13 | + ..addOption( |
| 14 | + 'current-color', |
| 15 | + help: 'The value (in ARGB format or a named SVG color) of the ' |
| 16 | + '"currentColor" attribute.', |
| 17 | + valueHelp: '0xFF000000', |
| 18 | + defaultsTo: '0xFF000000', |
| 19 | + ) |
| 20 | + ..addOption( |
| 21 | + 'font-size', |
| 22 | + help: 'The basis for font size based values (i.e. em, ex).', |
| 23 | + valueHelp: '14', |
| 24 | + defaultsTo: '14', |
| 25 | + ) |
| 26 | + ..addOption( |
| 27 | + 'x-height', |
| 28 | + help: 'The x-height or corpus size of the font. If unspecified, defaults ' |
| 29 | + 'to half of font-size.', |
| 30 | + valueHelp: '7', |
| 31 | + ) |
11 | 32 | ..addOption( |
12 | 33 | 'libtessellator', |
13 | 34 | help: 'The path to a libtessellator dynamic library', |
@@ -80,6 +101,21 @@ void validateOptions(ArgResults results) { |
80 | 101 | } |
81 | 102 | } |
82 | 103 |
|
| 104 | +SvgTheme _parseTheme(ArgResults results) { |
| 105 | + Color? currentColor = namedColors[results['current-color']]; |
| 106 | + if (currentColor == null) { |
| 107 | + final int? argbValue = int.tryParse(results['current-color'] as String); |
| 108 | + currentColor = Color(argbValue ?? 0xFF000000); |
| 109 | + } |
| 110 | + return SvgTheme( |
| 111 | + currentColor: currentColor, |
| 112 | + fontSize: double.tryParse(results['font-size'] as String) ?? 14, |
| 113 | + xHeight: results.wasParsed('x-height') |
| 114 | + ? double.tryParse(results['x-height'] as String) |
| 115 | + : null, |
| 116 | + ); |
| 117 | +} |
| 118 | + |
83 | 119 | Future<void> main(List<String> args) async { |
84 | 120 | final ArgResults results; |
85 | 121 | try { |
@@ -132,6 +168,7 @@ Future<void> main(List<String> args) async { |
132 | 168 | ); |
133 | 169 | if (!await processor.process( |
134 | 170 | pairs, |
| 171 | + theme: _parseTheme(results), |
135 | 172 | maskingOptimizerEnabled: maskingOptimizerEnabled, |
136 | 173 | clippingOptimizerEnabled: clippingOptimizerEnabled, |
137 | 174 | overdrawOptimizerEnabled: overdrawOptimizerEnabled, |
|
0 commit comments