aviutl2-cli 0.9.0-preview.0

AviUtl2のプラグイン・スクリプト開発に便利なコマンドラインツール
mod catalog;
mod catalog_schema;
mod cli;
mod commands;
mod config;
mod log_writer;
mod schema;
mod util;

use clap::Parser;

fn main() {
    let cli = cli::Cli::parse();
    if cli.no_color {
        colored::control::set_override(false);
    }
    let level = tracing::Level::INFO;
    match cli.log_style {
        cli::LogStyle::Original => {
            tracing_subscriber::fmt()
                .event_format(crate::log_writer::LogFormatter)
                .with_max_level(level)
                .init();
        }
        cli::LogStyle::Default => {
            tracing_subscriber::fmt()
                .with_ansi(!cli.no_color)
                .with_max_level(level)
                .init();
        }
        cli::LogStyle::Compact => {
            tracing_subscriber::fmt()
                .with_ansi(!cli.no_color)
                .compact()
                .with_max_level(level)
                .init();
        }
        cli::LogStyle::Pretty => {
            tracing_subscriber::fmt()
                .with_ansi(!cli.no_color)
                .pretty()
                .with_max_level(level)
                .init();
        }
    }
    let config_opts = config::ConfigLoadOpts {
        patch: cli.config_patch,
        override_path: cli.config_override,
    };
    if let Err(e) = commands::run(cli.command, config_opts) {
        tracing::error!("{:?}", e);
        std::process::exit(1);
    }
}