diff --git a/pagetop/Cargo.toml b/pagetop/Cargo.toml index 514ab6e9..a4db3d98 100644 --- a/pagetop/Cargo.toml +++ b/pagetop/Cargo.toml @@ -27,6 +27,8 @@ downcast-rs = "1.2.0" figlet-rs = "0.1.3" futures = "0.3.21" once_cell = "1.10.0" +substring = "1.4.5" +term_size = "0.3.2" url = "2.2.2" config_rs = { package = "config", version = "0.11.0", features = ["toml"] } diff --git a/pagetop/src/app/banner/mod.rs b/pagetop/src/app/banner/mod.rs index f6d63841..1cce7146 100644 --- a/pagetop/src/app/banner/mod.rs +++ b/pagetop/src/app/banner/mod.rs @@ -2,6 +2,7 @@ use crate::Lazy; use crate::config::SETTINGS; use figlet_rs::FIGfont; +use substring::Substring; static FIGFONT: Lazy = Lazy::new(|| { let slant = include_str!("slant.flf"); @@ -31,8 +32,23 @@ static FIGFONT: Lazy = Lazy::new(|| { pub fn print_on_startup() { if SETTINGS.app.startup_banner.to_lowercase() != "off" { - println!("\n{} {}\n\n Powered by PageTop {}\n", - FIGFONT.convert(&SETTINGS.app.name).unwrap(), + if let Some((term_width, _)) = term_size::dimensions() { + if term_width >= 80 { + let maxlen = (term_width / 10) - 2; + let mut app = SETTINGS.app.name.substring(0, maxlen).to_owned(); + if SETTINGS.app.name.len() > maxlen { + app = format!("{}...", app); + } + println!("\n{} {}\n\n Powered by PageTop {}\n", + FIGFONT.convert(&app).unwrap(), + &SETTINGS.app.description, + env!("CARGO_PKG_VERSION") + ); + return; + } + } + println!("\n{}\n{}\n\nPowered by PageTop {}\n", + &SETTINGS.app.name, &SETTINGS.app.description, env!("CARGO_PKG_VERSION") ); diff --git a/pagetop/src/lib.rs b/pagetop/src/lib.rs index 73e17c8d..72ab7328 100644 --- a/pagetop/src/lib.rs +++ b/pagetop/src/lib.rs @@ -1,8 +1,8 @@ -// Global. +// Local. -pub use doc_comment::doc_comment; -pub use once_cell::sync::Lazy; -pub use futures::executor::block_on as run_now; +pub(crate) use doc_comment::doc_comment; +pub(crate) use once_cell::sync::Lazy; +pub(crate) use futures::executor::block_on as run_now; // ----------------------------------------------------------------------------- // APIs públicas.