/ src / commands.rs
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  }