diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2018-12-23 21:58:08 -0500 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2018-12-23 21:58:08 -0500 |
commit | 6fe8682c3d5783d269e6ac9f38071e72c012e79f (patch) | |
tree | a84070942992d97d11459c67828acf36ff34b6b8 /src/main.rs | |
parent | 819891b51f5172640aacfa7c6ee5bc438b35bba3 (diff) |
move functions into their respective config parsing file
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 92 |
1 files changed, 10 insertions, 82 deletions
diff --git a/src/main.rs b/src/main.rs index 4749e09..7937925 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,99 +5,27 @@ extern crate xdg; // use std::collections::BTreeMap; use std::env; -use std::fs; -use std::process; mod joshuto; -const PROGRAM_NAME: &str = "joshuto"; -const CONFIG_FILE: &str = "joshuto.toml"; -const KEYMAP_FILE: &str = "keymap.toml"; - -fn read_config() -> Option<joshuto::config::JoshutoRawConfig> -{ - let dirs = xdg::BaseDirectories::with_profile(PROGRAM_NAME, "").unwrap(); - - let config_path = dirs.find_config_file(CONFIG_FILE)?; - println!("config_path: {:?}", config_path); - match fs::read_to_string(&config_path) { - Ok(config_contents) => { - match toml::from_str(&config_contents) { - Ok(config) => { - Some(config) - }, - Err(e) => { - eprintln!("{}", e); - process::exit(1); - }, - } - }, - Err(e) => { - eprintln!("{}", e); - None - }, - } -} - -fn get_config() -> joshuto::config::JoshutoConfig -{ - match read_config() { - Some(config) => { - config.flatten() - } - None => { - joshuto::config::JoshutoConfig::new() - } - } -} - -fn read_keymaps() -> Option<joshuto::keymap::JoshutoRawKeymaps> -{ - let dirs = xdg::BaseDirectories::with_profile(PROGRAM_NAME, "").unwrap(); - - let config_path = dirs.find_config_file(KEYMAP_FILE)?; - println!("config_path: {:?}", config_path); - match fs::read_to_string(&config_path) { - Ok(config_contents) => { - match toml::from_str(&config_contents) { - Ok(config) => { - Some(config) - }, - Err(e) => { - eprintln!("{}", e); - process::exit(1); - }, - } - }, - Err(e) => { - eprintln!("{}", e); - None - }, - } -} - -fn get_keymap() -> joshuto::keymap::JoshutoKeymaps -{ - match read_keymaps() { - Some(config) => { - config.flatten() - } - None => { - joshuto::keymap::JoshutoKeymaps::new() - } - } -} +pub const PROGRAM_NAME: &str = "joshuto"; +pub const CONFIG_FILE: &str = "joshuto.toml"; +pub const KEYMAP_FILE: &str = "keymap.toml"; +pub const MIMETYPE_FILE: &str = "mimetype.toml"; fn main() { let args: Vec<String> = env::args().collect(); println!("args: {:?}", args); - let config = get_config(); + let config = joshuto::config::JoshutoConfig::get_config(); println!("config:\n{:#?}", config); - let keymap = get_keymap(); + let keymap = joshuto::keymap::JoshutoKeymap::get_config(); println!("keymap:\n{:#?}", keymap); - joshuto::run(config, keymap); + let mimetype = joshuto::mimetype::JoshutoMimetype::get_config(); + println!("mimetype:\n{:#?}", mimetype); + + joshuto::run(config, keymap, mimetype); } |