App
启动流程(thurgio_cli::cli::init):
- 若子命令为
generate或version,直接执行并返回(不需要 logger)。 - 初始化 logger:
- 读取
RUST_LOG过滤级别,默认info(如info,thurgio=debug表示所有 crate 启用 info 级,thurgio 启用 debug 级;也可用于关闭某些 crate 的日志)。 - 读取
RUST_LOG_ANSI,为true时启用颜色;未设置时自动检测(stdout 为 TTY 才启用)。同时控制 logger 与 CLI 彩色输出(owo-colors,如build的✔/✘)。 - 读取
RUST_LOG_FORMAT,为json时输出 JSON 日志。
- 读取
- 若子命令为
init,生成配置并返回(需要 logger,不需要配置)。 - 若设置了
-r/--root(或ROOT环境变量),set_root_dir创建并切换到该目录。 - 初始化 Config 和 Renderer(
thurgio_app::initialize:Source → AppState → 熔断器状态恢复)。 - 执行子命令(
build/check/diff/upgrade/serve)。
不带子命令直接运行 thurgio 只执行初始化(加载配置)后退出。