summer 0.7.1

Rust microservice framework like spring boot in java
Documentation
use nu_ansi_term::Color;

use crate::config::ConfigRegistry;
use crate::log::{LogLevel, LoggerConfig};
use crate::{app::AppBuilder, config::env::Env};

const BANNER: &str = r"
            ⌡
         __@▓▄                             ___
   ___,p@▒▒░▓▓L                            ▀▀▀ª    ▄▄▄▄▄
  ⌡▒▒▒▓▒▒░▒▓▓▓▓  ▄█████  ████████_  ██████ ███ª █████████,  ▄████████
_▄▒▓▒▒▓▒▒░▓▓▓▓▓  ▓██▄_   ███~ ~███, ███▀ª~ ███─ ███▓~~▓██N ███▀~~▓██▀
▄▓▒▓▒▒▓▒▓▓▓▓▓▓█   ~▀███  ███_ _███'▐███    ███  ███ª  ▓██N ███▄ _███G
▓▓▒▓▒▒▓▓▓▓▓▓▓▀  ▀█████▀  ███▀████ª ▐███    ███  ███   ▓██N ~▀███▀███ª
▓▓▓▓▓▓▓▓▓▓▀ª`            ███                                ▄▄▄▄▄███
 ▓▀▀▀ⁿª^                 ▀▀▀                                ▀▀▀▀▀▀▀~
";

pub(crate) fn print_banner(app: &AppBuilder) {
    println!("{BANNER}");
    println!(
        "     summer: {}",
        Color::Green.paint(env!("CARGO_PKG_VERSION"))
    );
    let env = match app.env {
        Env::Dev => Color::LightYellow.paint("Dev"),
        Env::Test => Color::LightBlue.paint("Test"),
        Env::Prod => Color::Green.paint("Prod"),
    };
    println!("environment: {env}");
    if cfg!(debug_assertions) {
        println!("compilation: {}", Color::LightRed.paint("Debug"));
    } else {
        println!("compilation: {}", Color::Green.paint("Release"));
    }

    let config = app
        .get_config::<LoggerConfig>()
        .expect("tracing plugin config load failed");
    if config.enable {
        let level = match config.level {
            LogLevel::Off => Color::LightRed.paint("Disabled"),
            LogLevel::Trace => Color::Purple.paint("TRACE"),
            LogLevel::Debug => Color::Blue.paint("DEBUG"),
            LogLevel::Info => Color::Green.paint("INFO "),
            LogLevel::Warn => Color::Yellow.paint("WARN "),
            LogLevel::Error => Color::Red.paint("ERROR"),
        };
        println!("     logger: {level}\n");
    } else {
        println!("     logger: {}\n", Color::LightRed.paint("Disabled"));
    }
}