1use std::env;
2use std::fs;
3use std::path::PathBuf;
4
5#[derive(Debug, PartialEq)]
6pub enum SoupError {
7 MissingConfig,
8 InvalidConfig,
9 InvalidCommand,
10}
11
12pub fn describe_error(err: SoupError) {
14 match err {
15 SoupError::MissingConfig => missing_config(),
16 SoupError::InvalidCommand => invalid_command(),
17 SoupError::InvalidConfig => invalid_config(),
18 }
19}
20
21fn missing_config() {
22 eprintln!("[Error]: Missing config file.");
23 println!("-------");
24 println!("Attempting to create one...");
25
26 let config_path = PathBuf::from(env::var("HOME").unwrap()).join(".config/soup.cfg");
27 let contents = "zola_dir=/path/to/zola/dir";
28
29 match fs::write(&config_path, contents) {
30 Ok(_) => println!("Created: {}", config_path.display()),
31 Err(e) => eprintln!("Error creating config file: {}", e),
32 }
33}
34
35fn invalid_config() {
36 eprintln!("[Error]: Invalid config file.");
37 println!("-------");
38 println!("Zola directory isn't set or doesn't exist.");
39}
40
41fn invalid_command() {
42 eprintln!("[Error]: Invalid command");
43 println!("-------");
44 println!("Available commands:");
45 println!(" add - Adds a new note");
46 println!("");
47}