use crate::command::Command;
use crate::error::ModCliError;
use crate::modcli_version;
use crate::output::{build, print, BLUE, GREY, LIGHT_BLUE};
pub struct FrameworkCommand;
impl Command for FrameworkCommand {
fn name(&self) -> &'static str {
"framework"
}
fn help(&self) -> Option<&str> {
Some("Framework Information")
}
fn hidden(&self) -> bool {
true
}
fn validate(&self, args: &[String]) -> Result<(), ModCliError> {
if !args.is_empty() {
Err(ModCliError::InvalidUsage(
"framework does not accept any arguments.".into(),
))
} else {
Ok(())
}
}
fn execute(&self, _args: &[String]) {
let framework = build()
.part("Mod")
.color(LIGHT_BLUE)
.bold()
.part("cli")
.color(BLUE)
.part(":")
.color(GREY)
.space()
.part("version:")
.space()
.part(modcli_version())
.bold()
.get();
let description = build()
.part("⬢")
.color(BLUE)
.space()
.part("cli framework for")
.italic()
.space()
.part("Rust")
.italic()
.bold()
.color(GREY)
.space()
.get();
print::newline();
print::line(&framework);
print::line(&description);
print::newline();
}
}