diff options
| author | El-BG-1970 <elouangros@hotmail.com> | 2022-07-22 16:40:19 +0200 |
|---|---|---|
| committer | El-BG-1970 <elouangros@hotmail.com> | 2022-07-22 16:40:19 +0200 |
| commit | ecccba4a0b2dfc53aa668b0e72f2910b1c0cd990 (patch) | |
| tree | 5aa90773186171af5671a32a057d0ca852376ebe | |
| parent | 6da4a2089e810ba4295d141917e8767a45e5bf72 (diff) | |
| download | rush-master.tar.gz | |
| -rw-r--r-- | src/main.rs | 10 | ||||
| -rw-r--r-- | src/parser.rs | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs index 3ebcee5..2cc5ea9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,11 +6,11 @@ use std::path::Path; mod parser; -fn substitute_vars(word: &String) -> String { - match word.as_str() { +fn substitute_vars(word: &str) -> String { + match word { "~" => env::var("HOME").unwrap(), - w if w.chars().nth(0).unwrap() == '~' => w.replace("~", env::var("HOME").unwrap().as_str()), - w if w.chars().nth(0).unwrap() == '$' => { + w if w.starts_with('~') => w.replace('~', env::var("HOME").unwrap().as_str()), + w if w.starts_with('$') => { match env::var(&w[1..]) { Ok(val) => val, Err(_) => String::from_str("").unwrap() @@ -32,7 +32,7 @@ fn main() -> io::Result<()> { let c = parser::command_line(&line).unwrap().1; // for (c,l) in command { - let mut parts = c.iter().map(substitute_vars); + let mut parts = c.iter().map(|s| substitute_vars(s)); let command = parts.next().unwrap(); match command.as_str() { diff --git a/src/parser.rs b/src/parser.rs index b43d16e..2e8c205 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -33,7 +33,7 @@ fn parameter(i: &str) -> IResult<&str, String> { fn ligature(i: &str) -> IResult<&str, Option<char>> { match tuple((space0, tag(";")))(i) { Ok((rest, c)) => - Ok((rest, c.1.chars().nth(0))), + Ok((rest, c.1.chars().next())), Err(e) => Err(e) } } |
