summaryrefslogtreecommitdiffstats
path: root/src/commands/mod.rs
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2019-05-27 08:11:16 -0400
committerJiayi Zhao <jeff.no.zhao@gmail.com>2019-05-27 08:11:16 -0400
commit35579905606926893d4e7c0f3f58096c5b581444 (patch)
tree383c1283617c6deddf0d6263a1f61f5ebcaccd1d /src/commands/mod.rs
parentecc16f39e5c146e47e37bb327e86f97b7ade1ef9 (diff)
refactor rename and search to make use of the command line
- update all other commands that make use of textfield to use new interface
Diffstat (limited to 'src/commands/mod.rs')
-rw-r--r--src/commands/mod.rs37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/commands/mod.rs b/src/commands/mod.rs
index 23ad4f2..8e98072 100644
--- a/src/commands/mod.rs
+++ b/src/commands/mod.rs
@@ -30,7 +30,7 @@ pub use self::parent_directory::ParentDirectory;
pub use self::quit::ForceQuit;
pub use self::quit::Quit;
pub use self::reload_dir::ReloadDirList;
-pub use self::rename_file::{RenameFile, RenameFileMethod};
+pub use self::rename_file::{RenameFile, RenameFileAppend, RenameFilePrepend};
pub use self::search::{Search, SearchNext, SearchPrev};
pub use self::selection::SelectFiles;
pub use self::set_mode::SetMode;
@@ -171,24 +171,25 @@ pub fn from_args(command: &str, args: &Vec<&str>) -> Result<Box<JoshutoCommand>,
}
"quit" => Ok(Box::new(self::Quit::new())),
"reload_dir_list" => Ok(Box::new(self::ReloadDirList::new())),
- "rename_file" => {
- let mut method: RenameFileMethod = self::RenameFileMethod::Append;
- for arg in args {
- match *arg {
- "--prepend" => method = self::RenameFileMethod::Prepend,
- "--overwrite" => method = self::RenameFileMethod::Overwrite,
- "--append" => method = self::RenameFileMethod::Append,
- _ => {
- return Err(KeymapError::new(
- Some("rename_file"),
- format!("unknown option {}", arg),
- ));
- }
- }
+ "rename" => match args.len() {
+ 1 => {
+ let path: PathBuf = PathBuf::from(args[0]);
+ Ok(Box::new(self::RenameFile::new(path)))
}
- Ok(Box::new(self::RenameFile::new(method)))
- }
- "search" => Ok(Box::new(self::Search::new())),
+ i => Err(KeymapError::new(
+ Some("rename_file"),
+ format!("Expected 1, got {}", i),
+ )),
+ },
+ "rename_append" => Ok(Box::new(self::RenameFileAppend::new())),
+ "rename_prepend" => Ok(Box::new(self::RenameFilePrepend::new())),
+ "search" => match args.len() {
+ 1 => Ok(Box::new(self::Search::new(args[0]))),
+ i => Err(KeymapError::new(
+ Some("search"),
+ format!("Expected 1, got {}", i),
+ )),
+ },
"search_next" => Ok(Box::new(self::SearchNext::new())),
"search_prev" => Ok(Box::new(self::SearchPrev::new())),
"select_files" => {