Skip to content

Commit 39538a0

Browse files
committed
Fix usage of the tool. Provide -h and --help
1 parent 0957f31 commit 39538a0

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

src/bin/rustfmt.rs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,22 +67,40 @@ fn main() {
6767
std::process::exit(0);
6868
}
6969

70+
fn usage<S: Into<String>>(reason: S) {
71+
print!("{}\n\r usage: rustfmt [-h Help] [--write-mode=[true/false]] <file_name>", reason.into());
72+
std::process::exit(1);
73+
}
74+
7075
fn determine_params<I>(args: I) -> (Vec<String>, WriteMode)
7176
where I: Iterator<Item = String>
7277
{
73-
let prefix = "--write-mode=";
78+
let arg_prefix = "-";
79+
let write_mode_prefix = "--write-mode=";
80+
let help_mode = "-h";
81+
let long_help_mode = "--help";
7482
let mut write_mode = WriteMode::Replace;
7583

7684
// The NewFile option currently isn't supported because it requires another
7785
// parameter, but it can be added later.
78-
let args = args.filter(|arg| {
79-
if arg.starts_with(prefix) {
80-
write_mode = FromStr::from_str(&arg[prefix.len()..]).expect("Unrecognized write mode");
86+
let args:Vec<String> = args.filter(|arg| {
87+
if arg.starts_with(write_mode_prefix) {
88+
write_mode = FromStr::from_str(&arg[write_mode_prefix.len()..]).expect("Unrecognized write mode");
89+
false
90+
} else if arg.starts_with(help_mode) || arg.starts_with(long_help_mode) {
91+
usage("");
92+
false
93+
} else if arg.starts_with(arg_prefix) {
94+
usage("Invalid argument");
8195
false
8296
} else {
8397
true
8498
}
8599
}).collect();
100+
if args.len() < 2 {
101+
usage("Please provide a file to be formatted");
102+
}
103+
86104

87105
(args, write_mode)
88106
}

0 commit comments

Comments
 (0)