forked from bonsai/harakit
fop(1): switch to getopt.rs(3)
This commit is contained in:
parent
bb2c63bfaf
commit
ad92fe27d4
26
src/fop.rs
26
src/fop.rs
@ -26,33 +26,43 @@ extern crate getopt;
|
|||||||
extern crate strerror;
|
extern crate strerror;
|
||||||
extern crate sysexits;
|
extern crate sysexits;
|
||||||
|
|
||||||
use getopt::{ Opt, Parser };
|
use getopt::GetOpt;
|
||||||
use strerror::StrError;
|
use strerror::StrError;
|
||||||
use sysexits::{ EX_DATAERR, EX_IOERR, EX_UNAVAILABLE, EX_USAGE };
|
use sysexits::{ EX_DATAERR, EX_IOERR, EX_UNAVAILABLE, EX_USAGE };
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let argv = args().collect::<Vec<String>>();
|
let argv = args().collect::<Vec<String>>();
|
||||||
let mut d = '␞';
|
let mut d = '␞';
|
||||||
let mut arg_parser = Parser::new(&argv, "d:");
|
let usage = format!(
|
||||||
|
"Usage: {} [-d delimiter] index command [args...]",
|
||||||
|
argv[0],
|
||||||
|
);
|
||||||
|
let mut index_arg = 0;
|
||||||
|
|
||||||
while let Some(opt) = arg_parser.next() {
|
while let Some(opt) = argv.getopt("d:") {
|
||||||
match opt {
|
match opt {
|
||||||
Ok(Opt('d', Some(arg))) => {
|
Ok(o) => {
|
||||||
|
/* unwrap because Err(OptError::MissingArg) will be returned if
|
||||||
|
* o.arg is None */
|
||||||
|
let arg = o.arg.unwrap();
|
||||||
let arg_char = arg.chars().collect::<Vec<char>>();
|
let arg_char = arg.chars().collect::<Vec<char>>();
|
||||||
if arg_char.len() > 1 {
|
if arg_char.len() > 1 {
|
||||||
eprintln!("{}: {}: Not a character.", argv[0], arg);
|
eprintln!("{}: {}: Not a character.", argv[0], arg);
|
||||||
exit(EX_USAGE);
|
exit(EX_USAGE);
|
||||||
} else { d = arg_char[0]; }
|
} else { d = arg_char[0]; }
|
||||||
|
index_arg = o.ind as usize;
|
||||||
},
|
},
|
||||||
_ => {},
|
Err(_) => {
|
||||||
|
eprintln!("{}", usage);
|
||||||
|
exit(EX_USAGE);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
let index_arg = arg_parser.index();
|
let command_arg = index_arg as usize + 1;
|
||||||
let command_arg = arg_parser.index() + 1;
|
|
||||||
|
|
||||||
argv.get(command_arg).unwrap_or_else(|| {
|
argv.get(command_arg).unwrap_or_else(|| {
|
||||||
eprintln!("Usage: {} [-d delimiter] index command [args...]", argv[0]);
|
eprintln!("{}", usage);
|
||||||
exit(EX_USAGE);
|
exit(EX_USAGE);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user