Skip to content

Commit

Permalink
std: Fix example in getopts module docs
Browse files Browse the repository at this point in the history
Issue #1833.
  • Loading branch information
bkircher committed May 1, 2012
1 parent 22254c3 commit 1a19309
Showing 1 changed file with 25 additions and 7 deletions.
32 changes: 25 additions & 7 deletions src/libstd/getopts.rs
Expand Up @@ -19,27 +19,45 @@ The following example shows simple command line parsing for an application
that requires an input file to be specified, accepts an optional output file
name following -o, and accepts both -h and --help as optional flags.
use std;
import std::getopts::{optopt,optflag,getopts,opt_present,opt_maybe_str,
fail_str};
fn do_work(in: str, out: option<str>) {
// ...
}
fn print_usage(program: str) {
io::println(\"Usage: \" + program + \" [options]\");
io::println(\"-o\t\tOutput\");
io::println(\"-h --help\tUsage\");
}
fn main(args: [str]) {
check vec::is_not_empty(args);
let program : str = vec::head(args);
let opts = [
optopt(\"o\"),
optflag(\"h\"),
optflag(\"help\")
];
let match = alt getopts(vec::shift(args), opts) {
ok(m) { m }
err(f) { fail fail_str(f) }
let match = alt getopts(vec::tail(args), opts) {
result::ok(m) { m }
result::err(f) { fail fail_str(f) }
};
if opt_present(match, \"h\") || opt_present(match, \"help\") {
print_usage();
print_usage(program);
ret;
}
let output = opt_maybe_str(match, \"o\");
let input = if !vec::is_empty(match.free) {
let input = if vec::is_not_empty(match.free) {
match.free[0]
} else {
print_usage();
print_usage(program);
ret;
}
};
do_work(input, output);
}
Expand Down

0 comments on commit 1a19309

Please sign in to comment.