use crate::builtins::{Builtin, BuiltinConfig}; use crate::error::ShellError; use colored::Colorize; pub struct Blahaj; impl Builtin for Blahaj { fn execute(&mut self, _: &mut BuiltinConfig, args: Vec) -> Result<(), ShellError> { let blahaj = " ((/ ,(((/ /((((( (/ ((((#(( (// (((((((. *(((/ /(######/ *((((/ *//%#####((/ ((#((/ ,*/********/////////////////(//* (%* ,((##(( ,*/((///(//////////((/(///////(/////(////*,(*#((/(/((//////###(###(/( /(((((((//((///((////((((((/(((((((((((((((((/(((##((#%(##(/((///*(&#(##/ /#((%(#(((((//#((((((((((((((((((((((((#(((((((((((/##(((((//((//* ####(/ (((###(###(#(#####(###############((#((((((((/((//(((#/(///// ,, ,(###%####%&%#############(#(#(####(((((((/(((/////*//, . .....*#(#######(((###(#(##(##(((/(/(/////, .. ....,..........,..*#%#######/( .. .............,*%%%%#%((((/ **,,,****//*(##((###(#((( &#(#/#((((((((#"; if args.is_empty() { println!("{}", blahaj); } else { if args[0].eq("-t") { trans_flag(blahaj); } else if args[0].eq("-p") { pride_flag(blahaj); } else if args[0].eq("-ger") { german(blahaj); } else { println!("{} is not a valid style for blahaj", args[0]) } } Ok(()) } } fn trans_flag(blahaj: &str) { for (index, lines) in blahaj.lines().enumerate() { if index % 4 == 0 { println!("{}", lines.truecolor(91, 206, 250));//light blue } else if index % 2 == 0 { println!("{}", lines.white()); } else { println!("{}", lines.truecolor(245, 169, 184));//pink } } } fn pride_flag(blahaj: &str) { let mut index = 1; for lines in blahaj.lines() { if index == 6 { println!("{}", lines.truecolor(36, 84, 142));//blue index = 0; } else if index == 5 { println!("{}", lines.truecolor(0, 178, 38));//green } else if index == 4 { println!("{}", lines.truecolor(255, 237, 0));//yellow } else if index == 3 { println!("{}", lines.truecolor(255, 140, 0));//orange } else if index == 2 { println!("{}", lines.truecolor(228, 3, 3));//red } else { println!("{}", lines.truecolor(115, 41, 130));//violet } index = index + 1; } } fn german(blahaj: &str) { for (index, lines) in blahaj.lines().enumerate() { if index <= 7 { println!("{}", lines.truecolor(30, 30, 30));//black } else if index > 6 && index <= 12 { println!("{}", lines.truecolor(255, 0, 0));//red } else { println!("{}", lines.truecolor(255, 255, 0));//yellow } } }