commands.rs
1 use std::env::var; 2 use std::fs::create_dir; 3 use std::path::Path; 4 use std::process::{Command}; 5 use crate::output_builder::{FennecOutput, Formating}; 6 7 pub fn help_menu(){ 8 9 let ref mut output_builder = FennecOutput::new(); 10 output_builder.append("Rouffy's Fennec package manager \n\n".to_string(),Vec::from([Formating::Normal])); 11 output_builder.append("Usage:".to_string(),Vec::from([Formating::Bold,Formating::Underlined])); 12 output_builder.append(" fennec".to_string(),Vec::from([Formating::Bold])); 13 output_builder.append(" [OPTIONS] [COMMAND] \n\n".to_string(),Vec::from([Formating::Normal])); 14 output_builder.append("Commands:".to_string(),Vec::from([Formating::Bold,Formating::Underlined])); 15 output_builder.append(" \n init\n\n".to_string(),Vec::from([Formating::Bold])); 16 17 18 match Command::new("echo").arg("-e").arg(output_builder.to_string()).status() { 19 Ok(_) => { 20 21 } 22 Err(err) => { 23 24 panic!("{err}") 25 } 26 }; 27 } 28 pub fn init(){ 29 30 let ref user_home = match var("HOME") { 31 Ok(home_dir) => { 32 home_dir 33 } 34 Err(err) => { 35 panic!("{}",err) 36 } 37 }; 38 let fennec_home = format!("{user_home}/.local/share/fennec"); 39 let ref fennec_path = Path::new(fennec_home.as_str()); 40 41 let fennec_user_packages = format!("{user_home}/.local/share/fennec/packages"); 42 let ref user_packages_path = Path::new(fennec_user_packages.as_str()); 43 44 if !fennec_path.exists() { 45 println!("Initializing fennec for a new user"); 46 println!("Creating fennec folder at {fennec_home}"); 47 48 match create_dir(fennec_path) { 49 Ok(_) => { 50 println!("{fennec_home} was created successfully") 51 } 52 Err(err) => { 53 panic!("{err}") 54 } 55 } 56 57 } 58 else{ 59 println!("No, no, now. The fennec already has a cozy home") 60 } 61 62 if !user_packages_path.exists() { 63 match create_dir(user_packages_path) { 64 Ok(_) => { 65 println!("{fennec_user_packages} was created successfully") 66 } 67 Err(err) => { 68 panic!("{err}") 69 } 70 } 71 } 72 }