1use directories_next as dirs;
2use std::{fmt, fs, path::PathBuf};
3
4mod tests;
5pub mod audio;
6pub mod network;
7pub mod bluetooth;
8pub mod signals;
9pub mod utils;
10
11#[derive(Debug, Clone)]
12struct PathNotFoundError;
13
14impl fmt::Display for PathNotFoundError {
15 fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
16 write!(formatter, "File could not be found")
17 }
18}
19
20#[allow(dead_code)]
21fn create_config(project_organization: &str, project_name: &str) -> Option<PathBuf> {
22 let config_dir = dirs::ProjectDirs::from("com", project_organization, project_name)?;
23 let config_dir = config_dir.config_dir();
24 if !config_dir.exists() {
25 fs::create_dir(config_dir).expect("Could not create directory");
26 }
27 let metadata = fs::metadata(config_dir);
28 if metadata.is_err() {
29 return None;
30 }
31 let config_file = String::from(project_name) + ".toml";
32 let file_path = config_dir.join(config_file);
33 if !file_path.exists() {
34 fs::File::create(&file_path).expect("Could not write config file");
35 }
36 Some(config_dir.join(""))
37}