mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 19:47:45 +00:00
Moved argument parsing to uumain.
This commit is contained in:
parent
11d0565f0e
commit
ae0cabc60a
3 changed files with 78 additions and 26 deletions
|
@ -89,21 +89,13 @@ impl Config {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn uumain(args: impl uucore::Args) -> i32 {
|
pub fn uumain(args: impl uucore::Args) -> i32 {
|
||||||
execute(
|
let format = Format::Base32;
|
||||||
args.collect_str(InvalidEncodingHandling::ConvertLossy)
|
let usage = get_usage();
|
||||||
.accept_any(),
|
|
||||||
SUMMARY,
|
|
||||||
LONG_HELP,
|
|
||||||
&get_usage(),
|
|
||||||
Format::Base32,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn execute(args: Vec<String>, _summary: &str, long_help: &str, usage: &str, format: Format) -> i32 {
|
|
||||||
let app = App::new(executable!())
|
let app = App::new(executable!())
|
||||||
.version(VERSION)
|
.version(VERSION)
|
||||||
.usage(usage)
|
.about(SUMMARY)
|
||||||
.about(long_help)
|
.usage(&usage[..])
|
||||||
|
.about(LONG_HELP)
|
||||||
// Format arguments.
|
// Format arguments.
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name(options::DECODE)
|
Arg::with_name(options::DECODE)
|
||||||
|
@ -130,7 +122,10 @@ fn execute(args: Vec<String>, _summary: &str, long_help: &str, usage: &str, form
|
||||||
// file passed in.
|
// file passed in.
|
||||||
.arg(Arg::with_name(options::FILE).index(1).multiple(true));
|
.arg(Arg::with_name(options::FILE).index(1).multiple(true));
|
||||||
|
|
||||||
let config: Config = Config::from(app.get_matches_from(args));
|
let arg_list = args
|
||||||
|
.collect_str(InvalidEncodingHandling::ConvertLossy)
|
||||||
|
.accept_any();
|
||||||
|
let config: Config = Config::from(app.get_matches_from(arg_list));
|
||||||
match config.to_read {
|
match config.to_read {
|
||||||
// Read from file.
|
// Read from file.
|
||||||
Some(name) => {
|
Some(name) => {
|
||||||
|
|
|
@ -28,7 +28,9 @@ static SUMMARY: &str = "A lightweight 'finger' program; print user information.
|
||||||
const BUFSIZE: usize = 1024;
|
const BUFSIZE: usize = 1024;
|
||||||
|
|
||||||
pub fn uumain(args: impl uucore::Args) -> i32 {
|
pub fn uumain(args: impl uucore::Args) -> i32 {
|
||||||
let args = args.collect_str(InvalidEncodingHandling::Ignore).accept_any();
|
let args = args
|
||||||
|
.collect_str(InvalidEncodingHandling::Ignore)
|
||||||
|
.accept_any();
|
||||||
|
|
||||||
let long_help = &format!(
|
let long_help = &format!(
|
||||||
"
|
"
|
||||||
|
|
|
@ -13,7 +13,12 @@ fn test_increase_file_size() {
|
||||||
|
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -25,7 +30,12 @@ fn test_increase_file_size_kb() {
|
||||||
|
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -46,7 +56,12 @@ fn test_reference() {
|
||||||
|
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -58,7 +73,12 @@ fn test_decrease_file_size() {
|
||||||
ucmd.args(&["--size=-4", TFILE2]).succeeds();
|
ucmd.args(&["--size=-4", TFILE2]).succeeds();
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -70,7 +90,12 @@ fn test_space_in_size() {
|
||||||
ucmd.args(&["--size", " 4", TFILE2]).succeeds();
|
ucmd.args(&["--size", " 4", TFILE2]).succeeds();
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -99,7 +124,12 @@ fn test_at_most_shrinks() {
|
||||||
ucmd.args(&["--size", "<4", TFILE2]).succeeds();
|
ucmd.args(&["--size", "<4", TFILE2]).succeeds();
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -111,7 +141,12 @@ fn test_at_most_no_change() {
|
||||||
ucmd.args(&["--size", "<40", TFILE2]).succeeds();
|
ucmd.args(&["--size", "<40", TFILE2]).succeeds();
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -123,7 +158,12 @@ fn test_at_least_grows() {
|
||||||
ucmd.args(&["--size", ">15", TFILE2]).succeeds();
|
ucmd.args(&["--size", ">15", TFILE2]).succeeds();
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -135,7 +175,12 @@ fn test_at_least_no_change() {
|
||||||
ucmd.args(&["--size", ">4", TFILE2]).succeeds();
|
ucmd.args(&["--size", ">4", TFILE2]).succeeds();
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -147,7 +192,12 @@ fn test_round_down() {
|
||||||
ucmd.args(&["--size", "/4", TFILE2]).succeeds();
|
ucmd.args(&["--size", "/4", TFILE2]).succeeds();
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -159,5 +209,10 @@ fn test_round_up() {
|
||||||
ucmd.args(&["--size", "*4", TFILE2]).succeeds();
|
ucmd.args(&["--size", "*4", TFILE2]).succeeds();
|
||||||
file.seek(SeekFrom::End(0)).unwrap();
|
file.seek(SeekFrom::End(0)).unwrap();
|
||||||
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
let actual = file.seek(SeekFrom::Current(0)).unwrap();
|
||||||
assert!(expected == actual, "expected '{}' got '{}'", expected, actual);
|
assert!(
|
||||||
|
expected == actual,
|
||||||
|
"expected '{}' got '{}'",
|
||||||
|
expected,
|
||||||
|
actual
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue