summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-05-13 14:41:19 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-05-13 14:41:19 +0200
commiteca41e04dd8879592fba1a900342e817c3543555 (patch)
tree74e7ef56343e0951c1dcdb8de70d2147cdf90b5e /bin
parent580c9e5286bddd5cea02721e72438a786edbb1b5 (diff)
Add argument finder helper function
Diffstat (limited to 'bin')
-rw-r--r--bin/src/main.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/bin/src/main.rs b/bin/src/main.rs
index 925fb49f..3b154a47 100644
--- a/bin/src/main.rs
+++ b/bin/src/main.rs
@@ -98,6 +98,14 @@ fn find_command() -> Option<String> {
env::args().skip(1).filter(|x| !x.starts_with("-")).next()
}
+fn find_args(command: &str) -> Vec<String> {
+ env::args()
+ .skip(1)
+ .position(|e| e == command)
+ .map(|pos| env::args().skip(pos + 2).collect::<Vec<String>>())
+ .unwrap_or(vec![])
+}
+
fn main() {
let commands = get_commands();
let mut args = env::args();
@@ -145,6 +153,7 @@ fn main() {
.stdin(Stdio::inherit())
.stdout(Stdio::inherit())
.stderr(Stdio::inherit())
+ .args(&find_args(s)[..])
.spawn()
.and_then(|mut handle| handle.wait())
{