yx_icon_fonts_flutter/bin/main.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');
}