1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 11:37:44 +00:00

docs: usage and values for options

This commit is contained in:
Terts Diepraam 2022-01-21 19:20:55 +01:00
parent 274459f2ed
commit ab3623f65a
3 changed files with 45 additions and 11 deletions

View file

@ -19,7 +19,7 @@ fn main() {
for (name, (_, app)) in utils {
let p = format!("docs/_generated/{}-help.md", name);
if let Ok(f) = File::create(&p) {
write_markdown(f, &mut app());
write_markdown(f, &mut app(), name);
println!("Wrote to '{}'", p);
} else {
println!("Error writing to {}", p);
@ -27,8 +27,9 @@ fn main() {
}
}
fn write_markdown(mut w: impl Write, app: &mut App) {
fn write_markdown(mut w: impl Write, app: &mut App, name: &str) {
write_version(&mut w, app);
write_usage(&mut w, app, name);
write_summary(&mut w, app);
write_options(&mut w, app);
}
@ -41,6 +42,14 @@ fn write_version(w: &mut impl Write, app: &App) {
);
}
fn write_usage(w: &mut impl Write, app: &mut App, name: &str) {
let _ = writeln!(w, "\n```");
let mut usage: String = app.render_usage().lines().nth(1).unwrap().trim().into();
usage = usage.replace(app.get_name(), name);
let _ = writeln!(w, "{}", usage);
let _ = writeln!(w, "```");
}
fn write_summary(w: &mut impl Write, app: &App) {
if let Some(about) = app.get_long_about().or_else(|| app.get_about()) {
let _ = writeln!(w, "{}", about);
@ -59,18 +68,43 @@ fn write_options(w: &mut impl Write, app: &App) {
} else {
first = false;
}
let _ = write!(w, "<code>--{}</code>", l);
let _ = write!(w, "<code>");
let _ = write!(w, "--{}", l);
if let Some(names) = arg.get_value_names() {
let _ = write!(
w,
"={}",
names
.iter()
.map(|x| format!("&lt;{}&gt;", x))
.collect::<Vec<_>>()
.join(" ")
);
}
for l in arg.get_short_and_visible_aliases().unwrap_or_default() {
let _ = write!(w, "</code>");
}
for s in arg.get_short_and_visible_aliases().unwrap_or_default() {
if !first {
let _ = write!(w, ", ");
} else {
first = false;
}
let _ = write!(w, "<code>-{}</code>", l);
let _ = write!(w, "<code>");
let _ = write!(w, "-{}", s);
if let Some(names) = arg.get_value_names() {
let _ = write!(
w,
" {}",
names
.iter()
.map(|x| format!("&lt;{}&gt;", x))
.collect::<Vec<_>>()
.join(" ")
);
}
let _ = write!(w, "</code>");
}
let _ = writeln!(w, "</dt>");
let _ = writeln!(w, "<dd>{}</dd>", arg.get_help().unwrap_or_default());
}
let _ = writeln!(w, "</dl>");

View file

@ -19,9 +19,9 @@ use uucore::error::{FromIo, UResult, USimpleError};
use uucore::InvalidEncodingHandling;
static NAME: &str = "sum";
static USAGE: &str =
"[OPTION]... [FILE]...\nWith no FILE, or when FILE is -, read standard input.";
static SUMMARY: &str = "Checksum and count the blocks in a file.";
static USAGE: &str = "sum [OPTION]... [FILE]...";
static SUMMARY: &str = "Checksum and count the blocks in a file.\n\
With no FILE, or when FILE is -, read standard input.";
fn bsd_sum(mut reader: Box<dyn Read>) -> (usize, u16) {
let mut buf = [0; 1024];

View file

@ -22,7 +22,7 @@ use uucore::InvalidEncodingHandling;
static NAME: &str = "unexpand";
static USAGE: &str = "unexpand [OPTION]... [FILE]...";
static SUMMARY: &str = "Convert blanks in each FILE to tabs, writing to standard output.\n
static SUMMARY: &str = "Convert blanks in each FILE to tabs, writing to standard output.\n\
With no FILE, or when FILE is -, read standard input.";
const DEFAULT_TABSTOP: usize = 8;