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); } } 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; } }