diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2019-01-07 21:38:53 -0500 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2019-01-07 21:38:53 -0500 |
commit | 2e4b9230a508e02154b3801a0770133b3e1acdd7 (patch) | |
tree | d8cca81f747bdcd3858d5588ffd92007933da643 | |
parent | 77b0e3a20255fa1929bf8ae7953f63baa0e1e35b (diff) |
add options to mimetype entries so joshuto doesn't get cluttered with program output or stops joshuto
-rw-r--r-- | config/mimetype.toml | 85 | ||||
-rw-r--r-- | src/joshuto/config/mimetype.rs | 17 | ||||
-rw-r--r-- | src/joshuto/unix.rs | 14 |
3 files changed, 83 insertions, 33 deletions
diff --git a/config/mimetype.toml b/config/mimetype.toml index 7a96a5f..9475032 100644 --- a/config/mimetype.toml +++ b/config/mimetype.toml @@ -3,25 +3,33 @@ [[mimetypes.pdf]] program = "evince" -exec_type = "forking" +fork = true +silent = true [[mimetypes.7z]] program = "file-roller" -exec_type = "forking" +fork = true +silent = true [[mimetypes.jpg]] program = "qimgv" -exec_type = "forking" +fork = true +silent = true + [[mimetypes.jpg]] program = "krita" -exec_type = "forking" +fork = true +silent = true [[mimetypes.png]] program = "qimgv" -exec_type = "forking" +fork = true +silent = true + [[mimetypes.png]] program = "krita" -exec_type = "forking" +fork = true +silent = true # Audio [[mimetypes.flac]] @@ -33,47 +41,100 @@ program = "mpv" # Videos [[mimetypes.mkv]] program = "mpv" -exec_type = "forking" +fork = true +silent = true [[mimetypes.mp4]] program = "mpv" -exec_type = "forking" +fork = true +silent = true [[mimetypes.webm]] program = "mpv" -exec_type = "forking" +fork = true +silent = true [[mimetypes.wmv]] program = "mpv" -exec_type = "forking" +fork = true +silent = true # text [[mimetypes.c]] program = "nano" +[[mimetypes.c]] +program = "gedit" +fork = true +silent = true + [[mimetypes.cpp]] program = "nano" +[[mimetypes.cpp]] +program = "gedit" +fork = true +silent = true + [[mimetypes.py]] program = "nano" +[[mimetypes.py]] +program = "gedit" +fork = true +silent = true + [[mimetypes.conf]] program = "nano" + [[mimetypes.java]] program = "nano" +[[mimetypes.java]] +program = "gedit" +fork = true +silent = true + [[mimetypes.html]] program = "nano" +[[mimetypes.html]] +program = "gedit" +fork = true +silent = true + [[mimetypes.md]] program = "nano" +[[mimetypes.md]] +program = "gedit" +fork = true +silent = true + [[mimetypes.rs]] program = "nano" +[[mimetypes.rs]] +program = "gedit" +fork = true +silent = true + [[mimetypes.toml]] program = "nano" +[[mimetypes.toml]] +program = "gedit" +fork = true +silent = true + [[mimetypes.xml]] program = "nano" +[[mimetypes.xml]] +program = "gedit" +fork = true +silent = true [[mimetypes.txt]] program = "nano" - +[[mimetypes.txt]] +program = "gedit" +fork = true +silent = true [[mimetypes.odt]] program = "libreoffice" -exec_type = "forking" +fork = true +silent = true diff --git a/src/joshuto/config/mimetype.rs b/src/joshuto/config/mimetype.rs index 7550b7f..991103e 100644 --- a/src/joshuto/config/mimetype.rs +++ b/src/joshuto/config/mimetype.rs @@ -6,17 +6,12 @@ use std::fs; use std::collections::HashMap; use std::process; -#[allow(non_camel_case_types)] -#[derive(Debug, Deserialize)] -pub enum ExecType { - forking -} - #[derive(Debug, Deserialize)] pub struct JoshutoMimetypeEntry { pub program: String, pub args: Option<Vec<String>>, - pub exec_type: Option<String>, + pub fork: Option<bool>, + pub silent: Option<bool>, } impl std::fmt::Display for JoshutoMimetypeEntry { @@ -26,17 +21,11 @@ impl std::fmt::Display for JoshutoMimetypeEntry { match self.args.as_ref() { Some(s) => { for arg in s { - fmt_result = write!(f, "{} ", arg); + fmt_result = write!(f, " {}", arg); } }, None => {}, } - match self.exec_type.as_ref() { - Some(s) => { - fmt_result = write!(f, "\t({})", s); - }, - None => {}, - } fmt_result } } diff --git a/src/joshuto/unix.rs b/src/joshuto/unix.rs index d593624..e6dc17d 100644 --- a/src/joshuto/unix.rs +++ b/src/joshuto/unix.rs @@ -109,10 +109,14 @@ pub fn open_with_entry(path: &path::Path, entry: &mimetype::JoshutoMimetypeEntry } } command.arg(path.as_os_str()); + if let Some(true) = entry.silent { + command.stdout(process::Stdio::null()); + command.stderr(process::Stdio::null()); + } match command.spawn() { Ok(mut handle) => { - if let Some(_) = entry.exec_type { + if let Some(true) = entry.fork { } else { match handle.wait() { Ok(_) => {}, @@ -120,9 +124,7 @@ pub fn open_with_entry(path: &path::Path, entry: &mimetype::JoshutoMimetypeEntry } } }, - Err(e) => { - eprintln!("{:?}", e); - }, + Err(e) => eprintln!("{}", e), } } @@ -144,8 +146,6 @@ pub fn open_with_args(path: &path::Path, args: &Vec<String>) Err(e) => eprintln!("{}", e), } }, - Err(e) => { - eprintln!("{:?}", e); - }, + Err(e) => eprintln!("{}", e), } } |