diff options
| author | El-BG-1970 <elouan.gros.fr@gmail.com> | 2022-04-27 14:51:07 +0200 |
|---|---|---|
| committer | El-BG-1970 <elouan.gros.fr@gmail.com> | 2022-04-27 14:51:07 +0200 |
| commit | 90cf1fff49dbbf12bf4151878674ad3ff567dcaf (patch) | |
| tree | c137c94706f26c6274fe1093c7d8fd5955b8d579 | |
| parent | 44929028777f7b15f6fd5627144735a23d360f81 (diff) | |
| download | rush-90cf1fff49dbbf12bf4151878674ad3ff567dcaf.tar.gz | |
cleaner cd code
| -rw-r--r-- | src/main.rs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/main.rs b/src/main.rs index df292b5..b1fb7b7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -36,17 +36,13 @@ fn main() -> io::Result<()> { "exit" => return Ok(()), "cd" => { // change directory - match parts.next() { - None => { - let home = env::var("HOME").unwrap(); - let cd = Path::new(home.as_str()); - env::set_current_dir(&cd)?; - }, - Some(p) => { - let cd = Path::new(&p); - env::set_current_dir(&cd)?; - } - }; + let new_dir = parts.peekable().peek() + .map_or(env::var("HOME").unwrap(), + |x| (*x).clone()); + let new_wd = Path::new(&new_dir); + if let Err(e) = env::set_current_dir(&new_wd) { + eprintln!("{}", e); + } }, command => { let child = Command::new(command) |
