You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.9 KiB
67 lines
1.9 KiB
//! Splash screen~
|
|
use super::*;
|
|
use std::borrow::Cow;
|
|
use recolored::Colorize;
|
|
|
|
macro_rules! feature {
|
|
(in $name:tt, $desc:literal) => {
|
|
cfg_if! {
|
|
if #[cfg($name)] {
|
|
println!(" +{}\t{}", stringify!($name).bright_green(), $desc);
|
|
} else {
|
|
println!(" -{}", stringify!($name));
|
|
}
|
|
}
|
|
};
|
|
(on $name:literal, $desc:literal $($tt:tt)*) => {
|
|
cfg_if! {
|
|
if #[cfg(feature=$name)] {
|
|
println!(" +{}\t{}", $name.red(), format!($desc $($tt)*));
|
|
} else {
|
|
println!(" -{}", $name.bright_blue());
|
|
}
|
|
}
|
|
};
|
|
(off $name:literal, $desc:literal $($tt:tt)*) => {
|
|
cfg_if! {
|
|
if #[cfg(feature=$name)] {
|
|
println!(" +{}\t{}", $name.bright_red(), format!($desc $($tt)*));
|
|
} else {
|
|
println!(" -{}", $name.blue());
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
pub fn splash() -> ! {
|
|
arg::usage();
|
|
|
|
// splash screen
|
|
println!(r#"
|
|
> sever ({}) v{}
|
|
> Coerce hardlinks to new files
|
|
|
|
For verbose output, set `RUST_LOG` env var to one of the following:
|
|
trace - Most verbose
|
|
debug - Verbose
|
|
info - Default
|
|
warn - Only show warnings
|
|
error - Only show errors
|
|
|
|
Made by {} with <3 (Licensed GPL 3.0 or later)"#, arg::program_name(), env!("CARGO_PKG_VERSION"), env!("CARGO_PKG_AUTHORS"));
|
|
println!("\nEnabled extensions: ");
|
|
|
|
feature!(in nightly, "\tCompiled with Rust nightly extensions");
|
|
|
|
println!("\nFeatures:");
|
|
|
|
feature!(on "splash", "\tShow this message");
|
|
feature!(on "parallel", "\tWill run up to {} operations in parallel", parallel::MAX_WORKERS.map(|x| Cow::Owned(x.to_string())).unwrap_or(Cow::Borrowed("unlimited")));
|
|
feature!(on "limit-concurrency", "Concurrency is capped");
|
|
feature!(off "threads", "\tUsing thread-pool");
|
|
feature!(on "recursive", "\tRecursivly process files up to {} directories deep", recurse::MAX_DEPTH);
|
|
feature!(on "limit-recursion", "Concurrency is capped");
|
|
|
|
std::process::exit(1)
|
|
}
|