use run_script::ScriptOptions;
mod rs_files;
pub fn with_script(args: &Vec<String>, mode: &str, file_name: &str) {
let options = ScriptOptions::new();
if !mode.is_empty() {
let code_name :&str = &format!("{}_{}", file_name, mode);
let rs_code = rs_files::get_rs(code_name);
let set_file = format!("echo '{}'", rs_code);
let cmd_echo = format!("echo '{}' > {}.rs", rs_code, file_name);
let cargo_script = format!("cargo script {}.rs", file_name);
let rm_script = format!("rm -rf {}.rs", file_name);
let cmds = format!(
"{}\n{}\n{}\n{}",
&set_file, &cmd_echo, &cargo_script, &rm_script
);
let (_code, output, error) = run_script::run(&cmds, &args, &options).unwrap();
println!("{}\n\n", output);
println!("Compiler: Output Info >>>>>>>>>>>>>> :\n\n{}", error);
} else {
}
}
pub fn without_mode(args: &Vec<String>, file_name: &str) {
let options = ScriptOptions::new();
let cmd_cargo;
match file_name.as_ref() {
"bwx" => {
cmd_cargo = format!("cargo run --bin {}", file_name);
dbg!(&cmd_cargo);
let cmds = format!("{}", &cmd_cargo);
let (_code, output, error) = run_script::run(&cmds, &args, &options).unwrap();
println!("{}", output);
dbg!(error);
}
_ => {
println!("\n\nList commands with all features for this code {}:\n", file_name);
for item in rs_files::FEATURE_MODE.iter() {
let code_name = &format!("{}_{}", file_name, item);
let result = rs_files::get_rs(code_name);
if result != rs_files::HELLO {
println!("bw -c {} -f {} | bat -l rs", file_name, item);
}
}
}
}
}