forked from bonsai/harakit
GNUmakefile, fop(1): added sysexits support
This commit is contained in:
23
src/fop.rs
23
src/fop.rs
@@ -18,13 +18,18 @@
|
||||
|
||||
use std::{
|
||||
env::args,
|
||||
io::{ Read, stdin, Write },
|
||||
io::{ stdin, Write },
|
||||
process::{ Command, exit, Stdio },
|
||||
};
|
||||
|
||||
extern crate sysexits;
|
||||
use sysexits::EX_USAGE;
|
||||
|
||||
fn main() {
|
||||
let argv = args().collect::<Vec<String>>();
|
||||
|
||||
let usage = format!("Usage: {} index command [args...]", argv[0]);
|
||||
|
||||
let index = match argv.get(1) {
|
||||
Some(i) => {
|
||||
i.parse::<usize>().unwrap_or_else(|_| {
|
||||
@@ -33,18 +38,18 @@ fn main() {
|
||||
})
|
||||
},
|
||||
None => {
|
||||
eprintln!("Usage: {} index command args...", argv[0]);
|
||||
exit(1);
|
||||
eprintln!("{}", usage);
|
||||
exit(EX_USAGE);
|
||||
},
|
||||
};
|
||||
|
||||
let mut buf = String::new();
|
||||
stdin().read_to_string(&mut buf).unwrap();
|
||||
stdin().read_line(&mut buf).unwrap();
|
||||
let mut fields = buf.split('␞').collect::<Vec<&str>>();
|
||||
|
||||
argv.get(2).unwrap_or_else(|| {
|
||||
eprintln!("Usage: {} index command args...", argv[0]);
|
||||
exit(1);
|
||||
eprintln!("{}", usage);
|
||||
exit(EX_USAGE);
|
||||
});
|
||||
|
||||
let opts = argv.iter().clone().skip(3).collect::<Vec<&String>>();
|
||||
@@ -57,7 +62,11 @@ fn main() {
|
||||
.unwrap();
|
||||
|
||||
let field = fields.get(index).unwrap_or_else(|| {
|
||||
eprintln!("{}: {}: No such index in input.", argv[0], index.to_string());
|
||||
eprintln!(
|
||||
"{}: {}: No such index in input.",
|
||||
argv[0],
|
||||
index.to_string()
|
||||
);
|
||||
exit(1);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user