use ansi_term::Color::Yellow;
use structopt::StructOpt;
#[derive(StructOpt)]
#[structopt(raw(setting = "structopt::clap::AppSettings::ColoredHelp"))]
struct App {
#[structopt(short, default_value = "rust")]
foreground: String,
#[structopt(short)]
background: Option<String>,
#[structopt(short, default_value = "10")]
max_chars: usize,
#[structopt(short)]
raw_out: bool,
text: String,
}
fn main() {
let app = App::from_args();
let moji = slack_moji::Moji::new(app.foreground, app.background, app.max_chars);
let mut txt = moji.draw(&app.text);
if txt.len() > 4000 {
eprint!("{}: ", Yellow.bold().paint("WARNING"));
eprint!("Output is greater than 4000 characters. ");
eprintln!("Slack will not let you send it.");
}
if !app.raw_out && txt.starts_with(' ') {
unsafe {
txt.as_mut_vec()[0] = b'.';
}
}
println!("{}", txt);
}