Add configs
This commit is contained in:
		
							parent
							
								
									85891abba0
								
							
						
					
					
						commit
						208eed348b
					
				
							
								
								
									
										6
									
								
								config/main.template.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								config/main.template.toml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
seperator=" | "
 | 
			
		||||
 | 
			
		||||
[plugins]
 | 
			
		||||
blacklist=["example_c", "example_rust"]
 | 
			
		||||
as_whitelist=false
 | 
			
		||||
template=["counter", "battery", "clock"]
 | 
			
		||||
							
								
								
									
										6
									
								
								config/main.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								config/main.toml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
seperator=" | "
 | 
			
		||||
 | 
			
		||||
[plugins]
 | 
			
		||||
blacklist=["example_c", "example_rust"]
 | 
			
		||||
as_whitelist=false
 | 
			
		||||
template=["counter", "battery", "clock"]
 | 
			
		||||
							
								
								
									
										55
									
								
								src/config.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								src/config.rs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
use std::path::{Path, PathBuf};
 | 
			
		||||
 | 
			
		||||
use serde::{Deserialize, Serialize};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Serialize, Deserialize, Default)]
 | 
			
		||||
pub struct Config {
 | 
			
		||||
    pub seperator: String,
 | 
			
		||||
    pub plugins: ConfigPlugins,
 | 
			
		||||
 | 
			
		||||
    #[serde(skip)]
 | 
			
		||||
    pub config_dir: PathBuf,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Serialize, Deserialize, Default)]
 | 
			
		||||
pub struct ConfigPlugins {
 | 
			
		||||
    pub blacklist: Vec<String>,
 | 
			
		||||
    pub as_whitelist: bool,
 | 
			
		||||
    pub template: Vec<String>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Config {
 | 
			
		||||
    pub fn new(path: &Path) -> Result<Self, ConfigError> {
 | 
			
		||||
        let path = path.join("main.toml");
 | 
			
		||||
        
 | 
			
		||||
        if !path.exists() {
 | 
			
		||||
            println!("ERROR: {:?} doesnt exist", path);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        let mut cfg: Self = toml::from_str(
 | 
			
		||||
                &std::fs::read_to_string(&path)?
 | 
			
		||||
            )?;
 | 
			
		||||
    
 | 
			
		||||
        cfg.config_dir = path.to_path_buf();
 | 
			
		||||
        Ok(cfg)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[allow(dead_code)]
 | 
			
		||||
#[derive(Debug)]
 | 
			
		||||
pub enum ConfigError {
 | 
			
		||||
    IoError(std::io::Error),
 | 
			
		||||
    TomlDeserialiseError(toml::de::Error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl From<std::io::Error> for ConfigError {
 | 
			
		||||
    fn from(e: std::io::Error) -> Self {
 | 
			
		||||
        Self::IoError(e)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
impl From<toml::de::Error> for ConfigError {
 | 
			
		||||
    fn from(e: toml::de::Error) -> Self {
 | 
			
		||||
        Self::TomlDeserialiseError(e)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user