1
0
forked from bonsai/harakit

GNUmakefile, fop(1): added sysexits support

This commit is contained in:
2023-12-27 22:42:50 -07:00
parent 5d9f6f3245
commit 3355cb3dc3
2 changed files with 27 additions and 12 deletions

View File

@@ -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);
});