72 lines
2.0 KiB
Dart
72 lines
2.0 KiB
Dart
#!/usr/bin/env dart
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:logging/logging.dart';
|
|
import 'package:yx_icon_fonts/yx_icon_fonts.dart';
|
|
|
|
/// YX Icon Fonts CLI 工具主入口
|
|
///
|
|
/// 这是一个图标字体代码生成工具,可以:
|
|
/// - 解析 iconfont.json 文件
|
|
/// - 生成 Flutter IconData 常量
|
|
/// - 支持自定义类名和输出路径
|
|
///
|
|
/// 使用方法:
|
|
/// `dart run yx_icon_fonts <command> [options]`
|
|
///
|
|
/// 可用命令:
|
|
/// - generate: 生成代码文件
|
|
/// - init: 初始化配置文件
|
|
/// - help: 显示帮助信息
|
|
/// - version: 显示版本信息
|
|
Future<void> main(List<String> arguments) async {
|
|
setupLogging(level: Level.ALL);
|
|
|
|
// 检查是否有参数
|
|
var resolvedArgs = arguments;
|
|
if (resolvedArgs.isEmpty) {
|
|
_showWelcome();
|
|
resolvedArgs = ['help'];
|
|
}
|
|
|
|
// 检查特殊命令
|
|
if (resolvedArgs.contains('--version') || resolvedArgs.contains('-v')) {
|
|
_showVersion();
|
|
return;
|
|
}
|
|
|
|
// 使用 CLI 运行器
|
|
final cli = IconFontsCLI();
|
|
final exitCode = await cli.run(resolvedArgs);
|
|
|
|
// 设置退出代码
|
|
exit(exitCode);
|
|
}
|
|
|
|
/// 显示欢迎信息
|
|
void _showWelcome() {
|
|
appLogger
|
|
..info('🎨 欢迎使用 YX Icon Fonts CLI 工具!')
|
|
..info('这是一个强大的图标字体代码生成工具,可以帮助您:')
|
|
..info(' 📋 解析 iconfont.json 文件')
|
|
..info(' 🛠️ 生成 Flutter IconData 常量')
|
|
..info(' 📁 自定义输出路径和类名')
|
|
..info('使用 --help 查看详细帮助信息');
|
|
}
|
|
|
|
/// 显示版本信息
|
|
void _showVersion() {
|
|
appLogger
|
|
..info('🎨 YX Icon Fonts CLI v2.0.0')
|
|
..info('构建信息:')
|
|
..info(' - Dart SDK: ${Platform.version}')
|
|
..info(' - 平台: ${Platform.operatingSystem}')
|
|
..info('特性:')
|
|
..info(' ✨ YAML 配置文件支持')
|
|
..info(' 🏗️ 模块化架构设计')
|
|
..info(' 🚀 快速代码生成')
|
|
..info(' 📝 自定义类名和路径')
|
|
..info('更多信息请访问: https://gitea.23544.com/wangyang/yx_icon_fonts_flutter');
|
|
}
|