summaryrefslogtreecommitdiffstats
path: root/src/options.rs
diff options
context:
space:
mode:
authorBen S <ogham@bsago.me>2015-02-21 23:43:40 +0000
committerBen S <ogham@bsago.me>2015-02-21 23:43:40 +0000
commitf8768e7c015575a6e67cee9602838d3799b63781 (patch)
tree13da68afadf8311c9ad61e2a94852c79113e0c77 /src/options.rs
parent363d52dbb0e05db30ee7c2c49417b2633df6c9ce (diff)
Mandate --recurse with --tree
Fixes #7.
Diffstat (limited to 'src/options.rs')
-rw-r--r--src/options.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/options.rs b/src/options.rs
index b463150..f903617 100644
--- a/src/options.rs
+++ b/src/options.rs
@@ -371,6 +371,7 @@ impl DirAction {
let tree = matches.opt_present("tree");
match (recurse, list, tree) {
+ (false, _, true ) => Err(Misfire::Useless("tree", false, "recurse")),
(true, true, _ ) => Err(Misfire::Conflict("recurse", "list-dirs")),
(true, false, false) => Ok(DirAction::Recurse),
(true, false, true ) => Ok(DirAction::Tree),
@@ -543,4 +544,11 @@ mod test {
let opts = Options::getopts(&[ "--blocks".to_string() ]);
assert_eq!(opts.unwrap_err(), Misfire::Useless("blocks", false, "long"))
}
+
+ #[test]
+ fn tree_without_recurse() {
+ let opts = Options::getopts(&[ "--tree".to_string() ]);
+ assert_eq!(opts.unwrap_err(), Misfire::Useless("tree", false, "recurse"))
+ }
+
}