#![allow(dead_code)]
use crate::color::Col;
use std::env;
use std::fs;
use std::io::Write;
pub struct Filestore;
impl Filestore {
pub fn write_into_desktop(
content: &Result<Vec<u8>, String>,
filename: &str,
) -> std::io::Result<()> {
let log_folder = env::var("HOME").unwrap() + "/Desktop/logs";
match fs::create_dir_all(&log_folder) {
Ok(_) => {
println!(
"{}",
Col::print_col(&Col::Green, "The folder was created successfully")
);
let file_log = log_folder + filename;
let fl = fs::File::create(&file_log);
match fl {
Ok(mut f) => {
println!(
"{}: {}",
Col::print_col(
&Col::Green,
"The file log was created successfully with in"
),
file_log
);
match content {
Ok(output_cmd) => {
f.write_all(output_cmd)?;
}
Err(e) => println!("Error {}", e),
}
}
Err(e) => {
println!(
"{}: {}",
Col::print_col(&Col::Red, "The file couldn't be created"),
e
);
}
}
}
Err(e) => {
println!("Couldn't create the folder: {}", e);
}
}
Ok(())
}
pub fn write_combined_to_desktop_log(
outputs: &[Result<Vec<u8>, String>],
) -> std::io::Result<()> {
let log_folder = env::var("HOME").unwrap() + "/Desktop/logs";
match fs::create_dir_all(&log_folder) {
Ok(_) => {
println!(
"{}",
Col::print_col(&Col::Green, "The folder was created successfully")
);
let file_log = log_folder + "/ExecuteLog.log";
let mut f = fs::OpenOptions::new()
.create(true)
.append(true)
.open(&file_log)?;
println!(
"{}: {}",
Col::print_col(&Col::Green, "The file log was created successfully within"),
file_log
);
for output in outputs {
match output {
Ok(out_cmd) => {
f.write_all(out_cmd)?;
writeln!(f)?;
}
Err(e) => {
println!("Error: {}", e);
}
}
}
}
Err(e) => {
println!("Couldn't create the folder: {}", e);
}
}
Ok(())
}
}