summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2018-12-23 21:58:08 -0500
committerJiayi Zhao <jeff.no.zhao@gmail.com>2018-12-23 21:58:08 -0500
commit6fe8682c3d5783d269e6ac9f38071e72c012e79f (patch)
treea84070942992d97d11459c67828acf36ff34b6b8 /src/main.rs
parent819891b51f5172640aacfa7c6ee5bc438b35bba3 (diff)
move functions into their respective config parsing file
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs92
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);
}