From a920464952df36e6c1797bc5dccf29f2976edf83 Mon Sep 17 00:00:00 2001 From: zhitkoff Date: Wed, 11 Oct 2023 12:13:22 -0400 Subject: [PATCH 01/32] split: undocumented options aliases + help fix --- src/uu/split/src/split.rs | 4 +++- tests/by-util/test_split.rs | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/uu/split/src/split.rs b/src/uu/split/src/split.rs index bfd595e4f8..020ada93bb 100644 --- a/src/uu/split/src/split.rs +++ b/src/uu/split/src/split.rs @@ -311,6 +311,7 @@ pub fn uu_app() -> Command { .arg( Arg::new(OPT_NUMERIC_SUFFIXES) .long(OPT_NUMERIC_SUFFIXES) + .alias("numeric") .require_equals(true) .default_missing_value("0") .num_args(0..=1) @@ -338,6 +339,7 @@ pub fn uu_app() -> Command { .arg( Arg::new(OPT_HEX_SUFFIXES) .long(OPT_HEX_SUFFIXES) + .alias("hex") .default_missing_value("0") .require_equals(true) .num_args(0..=1) @@ -372,7 +374,7 @@ pub fn uu_app() -> Command { .allow_hyphen_values(true) .value_name("SEP") .action(ArgAction::Append) - .help("use SEP instead of newline as the record separator; '\0' (zero) specifies the NUL character"), + .help("use SEP instead of newline as the record separator; '\\0' (zero) specifies the NUL character"), ) .arg( Arg::new(OPT_IO) diff --git a/tests/by-util/test_split.rs b/tests/by-util/test_split.rs index ce80844cf3..113c0fb87f 100644 --- a/tests/by-util/test_split.rs +++ b/tests/by-util/test_split.rs @@ -1192,6 +1192,19 @@ fn test_numeric_suffix() { assert_eq!(at.read("x12"), ""); } +#[test] +fn test_numeric_suffix_alias() { + let (at, mut ucmd) = at_and_ucmd!(); + ucmd.args(&["-n", "4", "--numeric=9", "threebytes.txt"]) + .succeeds() + .no_stdout() + .no_stderr(); + assert_eq!(at.read("x09"), "a"); + assert_eq!(at.read("x10"), "b"); + assert_eq!(at.read("x11"), "c"); + assert_eq!(at.read("x12"), ""); +} + #[test] fn test_hex_suffix() { let (at, mut ucmd) = at_and_ucmd!(); @@ -1205,6 +1218,19 @@ fn test_hex_suffix() { assert_eq!(at.read("x0c"), ""); } +#[test] +fn test_hex_suffix_alias() { + let (at, mut ucmd) = at_and_ucmd!(); + ucmd.args(&["-n", "4", "--hex=9", "threebytes.txt"]) + .succeeds() + .no_stdout() + .no_stderr(); + assert_eq!(at.read("x09"), "a"); + assert_eq!(at.read("x0a"), "b"); + assert_eq!(at.read("x0b"), "c"); + assert_eq!(at.read("x0c"), ""); +} + #[test] fn test_numeric_suffix_no_equal() { new_ucmd!() From 2bd5e263172772b595412fb978668709d2033230 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 12 Oct 2023 17:20:00 +0200 Subject: [PATCH 02/32] DEVELOPMENT.md: improve doc on how to run some tests --- DEVELOPMENT.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 24a1bdeb52..308daba981 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -142,6 +142,8 @@ If you also want to test the core utilities: ```shell cargo test -p uucore -p coreutils +# or +cargo test --all-features -p uucore ``` Running the complete test suite might take a while. We use [nextest](https://nexte.st/index.html) in From 29a5a13ce6a153b15d6eba742dd7747b0abce824 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 12 Oct 2023 14:29:26 +0200 Subject: [PATCH 03/32] fs: split get_file_display into its function --- src/uucore/src/lib/features/fs.rs | 54 ++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/src/uucore/src/lib/features/fs.rs b/src/uucore/src/lib/features/fs.rs index 719efc7a6e..97238b10df 100644 --- a/src/uucore/src/lib/features/fs.rs +++ b/src/uucore/src/lib/features/fs.rs @@ -465,6 +465,35 @@ pub fn display_permissions(metadata: &fs::Metadata, display_file_type: bool) -> display_permissions_unix(mode, display_file_type) } +/// Returns a character representation of the file type based on its mode. +/// This function is specific to Unix-like systems. +/// +/// - `mode`: The mode of the file, typically obtained from file metadata. +/// +/// # Returns +/// - 'd' for directories +/// - 'c' for character devices +/// - 'b' for block devices +/// - '-' for regular files +/// - 'p' for FIFOs (named pipes) +/// - 'l' for symbolic links +/// - 's' for sockets +/// - '?' for any other unrecognized file types +#[cfg(unix)] +fn get_file_display(mode: mode_t) -> char { + match mode & S_IFMT { + S_IFDIR => 'd', + S_IFCHR => 'c', + S_IFBLK => 'b', + S_IFREG => '-', + S_IFIFO => 'p', + S_IFLNK => 'l', + S_IFSOCK => 's', + // TODO: Other file types + _ => '?', + } +} + // The logic below is more readable written this way. #[allow(clippy::if_not_else)] #[allow(clippy::cognitive_complexity)] @@ -474,17 +503,7 @@ pub fn display_permissions_unix(mode: mode_t, display_file_type: bool) -> String let mut result; if display_file_type { result = String::with_capacity(10); - result.push(match mode & S_IFMT { - S_IFDIR => 'd', - S_IFCHR => 'c', - S_IFBLK => 'b', - S_IFREG => '-', - S_IFIFO => 'p', - S_IFLNK => 'l', - S_IFSOCK => 's', - // TODO: Other file types - _ => '?', - }); + result.push(get_file_display(mode)); } else { result = String::with_capacity(9); } @@ -881,4 +900,17 @@ mod tests { assert!(are_hardlinks_to_same_file(&path1, &path2)); } + + #[cfg(unix)] + #[test] + fn test_get_file_display() { + assert_eq!(get_file_display(S_IFDIR | 0o755), 'd'); + assert_eq!(get_file_display(S_IFCHR | 0o644), 'c'); + assert_eq!(get_file_display(S_IFBLK | 0o600), 'b'); + assert_eq!(get_file_display(S_IFREG | 0o777), '-'); + assert_eq!(get_file_display(S_IFIFO | 0o666), 'p'); + assert_eq!(get_file_display(S_IFLNK | 0o777), 'l'); + assert_eq!(get_file_display(S_IFSOCK | 0o600), 's'); + assert_eq!(get_file_display(0o777), '?'); + } } From 94972d45c7aa0532c3b44d2c131b4028b63f5555 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 12 Oct 2023 23:07:27 +0200 Subject: [PATCH 04/32] ls: Document a bit tests/ls/stat-dtype.sh --- src/uu/ls/src/ls.rs | 8 ++++---- tests/by-util/test_ls.rs | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs index 39bab79823..8a05e81f89 100644 --- a/src/uu/ls/src/ls.rs +++ b/src/uu/ls/src/ls.rs @@ -2395,10 +2395,10 @@ fn display_grid( writeln!(out)?; } } else { - let mut grid = Grid::new(GridOptions { - filling: Filling::Spaces(2), - direction, - }); + // To match gnu/tests/ls/stat-dtype.sh + // we might want to have Text("\t".to_string()); + let filling = Filling::Spaces(2); + let mut grid = Grid::new(GridOptions { filling, direction }); for name in names { grid.add(name); diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs index 7d0f86298c..d9c1c8740e 100644 --- a/tests/by-util/test_ls.rs +++ b/tests/by-util/test_ls.rs @@ -3678,3 +3678,17 @@ fn test_ls_dired_complex() { println!("Extracted filenames: {:?}", filenames); assert_eq!(filenames, vec!["a1", "a22", "a333", "a4444", "d"]); } + +#[ignore = "issue #5396"] +#[test] +fn test_ls_tabsize_cf() { + let (at, mut ucmd) = at_and_ucmd!(); + + at.mkdir("e"); + at.mkdir("e/a2345"); + at.mkdir("e/b"); + + ucmd.args(&["-CF", "e"]) + .succeeds() + .stdout_is("a2345/\tb/\n"); +} From cd51eb8eb58ca8c893ba775707537bc475e54e4a Mon Sep 17 00:00:00 2001 From: Miles Liu Date: Fri, 13 Oct 2023 14:13:10 +0800 Subject: [PATCH 05/32] ci: code-quality workflow doesn't fail on clippy errors --- .github/workflows/code-quality.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index abcfd90ab9..0a619e0977 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -4,6 +4,10 @@ name: Code Quality on: [push, pull_request] +env: + # * style job configuration + STYLE_FAIL_ON_FAULT: true ## (bool) fail the build if a style job contains a fault (error or warning); may be overridden on a per-job basis + permissions: contents: read # to fetch code (actions/checkout) From f1f4823feb91dd3a8644287a1995e5f5433b8ef7 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Fri, 13 Oct 2023 08:26:06 +0200 Subject: [PATCH 06/32] who: suppress cognitive_complexity lint --- src/uu/who/src/who.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/uu/who/src/who.rs b/src/uu/who/src/who.rs index 29929b1386..5d952efffb 100644 --- a/src/uu/who/src/who.rs +++ b/src/uu/who/src/who.rs @@ -326,6 +326,7 @@ fn current_tty() -> String { } impl Who { + #[allow(clippy::cognitive_complexity)] fn exec(&mut self) -> UResult<()> { let run_level_chk = |_record: i16| { #[cfg(not(target_os = "linux"))] From 8826e47d36086737370cb11d647b1399ab6d0b01 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 13 Oct 2023 10:30:31 +0200 Subject: [PATCH 07/32] ignore dtype in the spell --- src/uu/ls/src/ls.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs index 8a05e81f89..bff7c44605 100644 --- a/src/uu/ls/src/ls.rs +++ b/src/uu/ls/src/ls.rs @@ -3,7 +3,7 @@ // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. -// spell-checker:ignore (ToDO) cpio svgz webm somegroup nlink rmvb xspf tabsize dired subdired +// spell-checker:ignore (ToDO) cpio svgz webm somegroup nlink rmvb xspf tabsize dired subdired dtype use clap::{ builder::{NonEmptyStringValueParser, ValueParser}, From 8931cfa93df1cd003ce081b413524fabbe8537f1 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 13 Oct 2023 11:18:00 +0200 Subject: [PATCH 08/32] improve the wordin Co-authored-by: Daniel Hofstetter --- src/uu/ls/src/ls.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs index bff7c44605..dfa637d230 100644 --- a/src/uu/ls/src/ls.rs +++ b/src/uu/ls/src/ls.rs @@ -2395,8 +2395,8 @@ fn display_grid( writeln!(out)?; } } else { - // To match gnu/tests/ls/stat-dtype.sh - // we might want to have Text("\t".to_string()); + // TODO: To match gnu/tests/ls/stat-dtype.sh + // we might want to have Filling::Text("\t".to_string()); let filling = Filling::Spaces(2); let mut grid = Grid::new(GridOptions { filling, direction }); From 41188a915ee33195f45ff86ac253cc0ef11c240c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 13 Oct 2023 11:35:45 +0200 Subject: [PATCH 09/32] rename the test Co-authored-by: Daniel Hofstetter --- tests/by-util/test_ls.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs index d9c1c8740e..8b0032065d 100644 --- a/tests/by-util/test_ls.rs +++ b/tests/by-util/test_ls.rs @@ -3681,7 +3681,7 @@ fn test_ls_dired_complex() { #[ignore = "issue #5396"] #[test] -fn test_ls_tabsize_cf() { +fn test_ls_cf_output_should_be_delimited_by_tab() { let (at, mut ucmd) = at_and_ucmd!(); at.mkdir("e"); From a69d48fb8c1d5b907a5943c99156352c13858316 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Fri, 13 Oct 2023 14:34:54 +0200 Subject: [PATCH 10/32] clippy: suppress cognitive_complexity lint --- src/uu/csplit/src/csplit.rs | 2 ++ src/uu/csplit/src/patterns.rs | 2 ++ src/uu/dd/src/numbers.rs | 1 + src/uu/dd/src/parseargs/unit_tests.rs | 1 + src/uu/df/src/blocks.rs | 1 + src/uu/head/src/head.rs | 1 + src/uu/head/src/parse.rs | 1 + src/uu/nl/src/nl.rs | 1 + src/uu/numfmt/src/format.rs | 1 + src/uu/numfmt/src/options.rs | 1 + src/uu/od/src/prn_float.rs | 1 + src/uu/seq/src/numberparse.rs | 2 ++ src/uu/split/src/number.rs | 4 ++++ src/uu/split/src/split.rs | 1 + src/uu/stat/src/stat.rs | 1 + 15 files changed, 21 insertions(+) diff --git a/src/uu/csplit/src/csplit.rs b/src/uu/csplit/src/csplit.rs index 6c9a776c38..6e03c2e5c8 100644 --- a/src/uu/csplit/src/csplit.rs +++ b/src/uu/csplit/src/csplit.rs @@ -664,6 +664,7 @@ mod tests { use super::*; #[test] + #[allow(clippy::cognitive_complexity)] fn input_splitter() { let input = vec![ Ok(String::from("aaa")), @@ -736,6 +737,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn input_splitter_interrupt_rewind() { let input = vec![ Ok(String::from("aaa")), diff --git a/src/uu/csplit/src/patterns.rs b/src/uu/csplit/src/patterns.rs index fd96fd9fb9..8e7b76e6bb 100644 --- a/src/uu/csplit/src/patterns.rs +++ b/src/uu/csplit/src/patterns.rs @@ -211,6 +211,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn up_to_match_pattern() { let input: Vec = vec![ "/test1.*end$/", @@ -264,6 +265,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn skip_to_match_pattern() { let input: Vec = vec![ "%test1.*end$%", diff --git a/src/uu/dd/src/numbers.rs b/src/uu/dd/src/numbers.rs index 2911f7e58c..8a6fa5a7a3 100644 --- a/src/uu/dd/src/numbers.rs +++ b/src/uu/dd/src/numbers.rs @@ -115,6 +115,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_to_magnitude_and_suffix_not_powers_of_1024() { assert_eq!(to_magnitude_and_suffix(1, SuffixType::Si), "1.0 B"); assert_eq!(to_magnitude_and_suffix(999, SuffixType::Si), "999 B"); diff --git a/src/uu/dd/src/parseargs/unit_tests.rs b/src/uu/dd/src/parseargs/unit_tests.rs index a190fd75bd..142e49fd0b 100644 --- a/src/uu/dd/src/parseargs/unit_tests.rs +++ b/src/uu/dd/src/parseargs/unit_tests.rs @@ -103,6 +103,7 @@ fn test_status_level_none() { } #[test] +#[allow(clippy::cognitive_complexity)] fn test_all_top_level_args_no_leading_dashes() { let args = &[ "if=foo.file", diff --git a/src/uu/df/src/blocks.rs b/src/uu/df/src/blocks.rs index 9bc16b7820..fad8f7ac0c 100644 --- a/src/uu/df/src/blocks.rs +++ b/src/uu/df/src/blocks.rs @@ -239,6 +239,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_to_magnitude_and_suffix_not_powers_of_1024() { assert_eq!(to_magnitude_and_suffix(1, SuffixType::Si), "1B"); assert_eq!(to_magnitude_and_suffix(999, SuffixType::Si), "999B"); diff --git a/src/uu/head/src/head.rs b/src/uu/head/src/head.rs index d6e4db5a78..c533f5a5df 100644 --- a/src/uu/head/src/head.rs +++ b/src/uu/head/src/head.rs @@ -548,6 +548,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn all_args_test() { assert!(options("--silent").unwrap().quiet); assert!(options("--quiet").unwrap().quiet); diff --git a/src/uu/head/src/parse.rs b/src/uu/head/src/parse.rs index 7f7dd48f8c..062a1844ce 100644 --- a/src/uu/head/src/parse.rs +++ b/src/uu/head/src/parse.rs @@ -153,6 +153,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_parse_numbers_obsolete() { assert_eq!(obsolete("-5"), obsolete_result(&["-n", "5"])); assert_eq!(obsolete("-100"), obsolete_result(&["-n", "100"])); diff --git a/src/uu/nl/src/nl.rs b/src/uu/nl/src/nl.rs index 71b4aac288..61ca8406f1 100644 --- a/src/uu/nl/src/nl.rs +++ b/src/uu/nl/src/nl.rs @@ -394,6 +394,7 @@ mod test { use super::*; #[test] + #[allow(clippy::cognitive_complexity)] fn test_format() { assert_eq!(NumberFormat::Left.format(12, 1), "12"); assert_eq!(NumberFormat::Left.format(-12, 1), "-12"); diff --git a/src/uu/numfmt/src/format.rs b/src/uu/numfmt/src/format.rs index 08bb0c2e77..034d900e92 100644 --- a/src/uu/numfmt/src/format.rs +++ b/src/uu/numfmt/src/format.rs @@ -430,6 +430,7 @@ mod tests { use super::*; #[test] + #[allow(clippy::cognitive_complexity)] fn test_round_with_precision() { let rm = RoundMethod::FromZero; assert_eq!(1.0, round_with_precision(0.12345, rm, 0)); diff --git a/src/uu/numfmt/src/options.rs b/src/uu/numfmt/src/options.rs index 07b364f18d..88e64e963e 100644 --- a/src/uu/numfmt/src/options.rs +++ b/src/uu/numfmt/src/options.rs @@ -266,6 +266,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_parse_format_with_invalid_formats() { assert!("".parse::().is_err()); assert!("hello".parse::().is_err()); diff --git a/src/uu/od/src/prn_float.rs b/src/uu/od/src/prn_float.rs index f4d018bd84..f44abf7c41 100644 --- a/src/uu/od/src/prn_float.rs +++ b/src/uu/od/src/prn_float.rs @@ -198,6 +198,7 @@ fn test_format_flo64() { } #[test] +#[allow(clippy::cognitive_complexity)] fn test_format_flo16() { assert_eq!(format_flo16(f16::from_bits(0x8400u16)), "-6.104e-5"); assert_eq!(format_flo16(f16::from_bits(0x8401u16)), "-6.109e-5"); diff --git a/src/uu/seq/src/numberparse.rs b/src/uu/seq/src/numberparse.rs index 4699172554..3f4b213955 100644 --- a/src/uu/seq/src/numberparse.rs +++ b/src/uu/seq/src/numberparse.rs @@ -538,6 +538,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_num_integral_digits() { // no decimal, no exponent assert_eq!(num_integral_digits("123"), 3); @@ -578,6 +579,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_num_fractional_digits() { // no decimal, no exponent assert_eq!(num_fractional_digits("123"), 0); diff --git a/src/uu/split/src/number.rs b/src/uu/split/src/number.rs index 39d64f9272..a01701c80e 100644 --- a/src/uu/split/src/number.rs +++ b/src/uu/split/src/number.rs @@ -398,6 +398,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_dynamic_width_number_display_alphabetic() { fn num(n: usize) -> Number { let mut number = Number::DynamicWidth(DynamicWidthNumber::new(26, 0)); @@ -443,6 +444,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_dynamic_width_number_display_numeric_hexadecimal() { fn num(n: usize) -> Number { let mut number = Number::DynamicWidth(DynamicWidthNumber::new(16, 0)); @@ -467,6 +469,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_fixed_width_number_increment() { let mut n = Number::FixedWidth(FixedWidthNumber::new(3, 2, 0).unwrap()); assert_eq!(n.digits(), vec![0, 0]); @@ -490,6 +493,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_fixed_width_number_display_alphabetic() { fn num(n: usize) -> Result { let mut number = Number::FixedWidth(FixedWidthNumber::new(26, 2, 0).unwrap()); diff --git a/src/uu/split/src/split.rs b/src/uu/split/src/split.rs index 020ada93bb..84b5900cc2 100644 --- a/src/uu/split/src/split.rs +++ b/src/uu/split/src/split.rs @@ -1846,6 +1846,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_number_type_from_error() { assert_eq!( NumberType::from("xyz").unwrap_err(), diff --git a/src/uu/stat/src/stat.rs b/src/uu/stat/src/stat.rs index 055393578e..7d1fd574c2 100644 --- a/src/uu/stat/src/stat.rs +++ b/src/uu/stat/src/stat.rs @@ -947,6 +947,7 @@ mod tests { } #[test] + #[allow(clippy::cognitive_complexity)] fn test_group_num() { assert_eq!("12,379,821,234", group_num("12379821234")); assert_eq!("21,234", group_num("21234")); From ae1c4ccfd21e5b1c8541462c8afeac5c0f5fde05 Mon Sep 17 00:00:00 2001 From: Zhuoxun Yang Date: Sat, 14 Oct 2023 01:56:38 +0800 Subject: [PATCH 11/32] expr: short-circuit evaluation for `&` --- src/uu/expr/src/syntax_tree.rs | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/uu/expr/src/syntax_tree.rs b/src/uu/expr/src/syntax_tree.rs index 4ca723a4d8..e0e786b3a3 100644 --- a/src/uu/expr/src/syntax_tree.rs +++ b/src/uu/expr/src/syntax_tree.rs @@ -166,16 +166,26 @@ impl AstNode { { let mut out = Vec::with_capacity(operands.len()); let mut operands = operands.iter(); - // check the first value before `|`, stop evaluate and return directly if it is true. - // push dummy to pass the check of `len() == 2` - if op_type == "|" { - if let Some(value) = operands.next() { - let value = value.evaluate()?; - out.push(value.clone()); - if value_as_bool(&value) { - out.push(String::from("dummy")); - return Ok(out); + + if let Some(value) = operands.next() { + let value = value.evaluate()?; + out.push(value.clone()); + // short-circuit evaluation for `|` and `&` + // push dummy to pass `assert!(values.len() == 2);` + match op_type.as_ref() { + "|" => { + if value_as_bool(&value) { + out.push(String::from("dummy")); + return Ok(out); + } + } + "&" => { + if !value_as_bool(&value) { + out.push(String::from("dummy")); + return Ok(out); + } } + _ => {} } } From 40f05a331e26a6f27a86dfd13cd1eb8095b7b549 Mon Sep 17 00:00:00 2001 From: Zhuoxun Yang Date: Sat, 14 Oct 2023 01:58:53 +0800 Subject: [PATCH 12/32] tests/expr: add tests for test_and --- tests/by-util/test_expr.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/by-util/test_expr.rs b/tests/by-util/test_expr.rs index 4637d51c73..1064ef525e 100644 --- a/tests/by-util/test_expr.rs +++ b/tests/by-util/test_expr.rs @@ -155,6 +155,21 @@ fn test_and() { .args(&["-14", "&", "1"]) .run() .stdout_is("-14\n"); + + new_ucmd!() + .args(&["0", "&", "a", "/", "5"]) + .run() + .stdout_only("0\n"); + + new_ucmd!() + .args(&["", "&", "a", "/", "5"]) + .run() + .stdout_only("0\n"); + + new_ucmd!() + .args(&["-1", "&", "10", "/", "5"]) + .succeeds() + .stdout_only("-1\n"); } #[test] From f979f148c11780a28fc23aafc2c68feab20b340a Mon Sep 17 00:00:00 2001 From: tommady Date: Sat, 14 Oct 2023 13:33:43 +0800 Subject: [PATCH 13/32] fuzz: store the corpus using GitHub Cache (#5363) --- .github/workflows/CICD.yml | 1 - .github/workflows/fuzzing.yml | 26 +++++++++++++------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/workflows/CICD.yml b/.github/workflows/CICD.yml index b971b0e00f..6583a00947 100644 --- a/.github/workflows/CICD.yml +++ b/.github/workflows/CICD.yml @@ -1012,4 +1012,3 @@ jobs: flags: ${{ steps.vars.outputs.CODECOV_FLAGS }} name: codecov-umbrella fail_ci_if_error: false - diff --git a/.github/workflows/fuzzing.yml b/.github/workflows/fuzzing.yml index 677df2c9f1..311d6a0d7a 100644 --- a/.github/workflows/fuzzing.yml +++ b/.github/workflows/fuzzing.yml @@ -24,41 +24,41 @@ jobs: - name: Install `cargo-fuzz` run: cargo install cargo-fuzz - uses: Swatinem/rust-cache@v2 + - name: Restore Cached Corpus + uses: actions/cache/restore@v3 + with: + key: corpus-cache + path: | + fuzz/corpus - name: Run fuzz_date for XX seconds + continue-on-error: true shell: bash run: | - ## Run it - cd fuzz cargo +nightly fuzz run fuzz_date -- -max_total_time=${{ env.RUN_FOR }} -detect_leaks=0 - name: Run fuzz_test for XX seconds - continue-on-error: true shell: bash run: | - ## Run it - cd fuzz cargo +nightly fuzz run fuzz_test -- -max_total_time=${{ env.RUN_FOR }} -detect_leaks=0 - name: Run fuzz_expr for XX seconds continue-on-error: true shell: bash run: | - ## Run it - cd fuzz cargo +nightly fuzz run fuzz_expr -- -max_total_time=${{ env.RUN_FOR }} -detect_leaks=0 - name: Run fuzz_parse_glob for XX seconds shell: bash run: | - ## Run it - cd fuzz cargo +nightly fuzz run fuzz_parse_glob -- -max_total_time=${{ env.RUN_FOR }} -detect_leaks=0 - name: Run fuzz_parse_size for XX seconds shell: bash run: | - ## Run it - cd fuzz cargo +nightly fuzz run fuzz_parse_size -- -max_total_time=${{ env.RUN_FOR }} -detect_leaks=0 - name: Run fuzz_parse_time for XX seconds shell: bash run: | - ## Run it - cd fuzz cargo +nightly fuzz run fuzz_parse_time -- -max_total_time=${{ env.RUN_FOR }} -detect_leaks=0 + - name: Save Corpus Cache + uses: actions/cache/save@v3 + with: + key: corpus-cache + path: | + fuzz/corpus From 505ef714b9980707f118ec29c185a47e6c99360b Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Oct 2023 11:41:48 +0200 Subject: [PATCH 14/32] rm: In some cases, remove_dir is doing a better job than remove_dir_all use it when remove_dir_all failed GNU compatibility (rm/empty-inacc.sh) --- src/uu/rm/src/rm.rs | 22 ++++++++++++++-------- tests/by-util/test_rm.rs | 15 +++++++++++++++ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/uu/rm/src/rm.rs b/src/uu/rm/src/rm.rs index 87767b904b..29ebd47580 100644 --- a/src/uu/rm/src/rm.rs +++ b/src/uu/rm/src/rm.rs @@ -330,14 +330,20 @@ fn handle_dir(path: &Path, options: &Options) -> bool { if options.recursive && (!is_root || !options.preserve_root) { if options.interactive != InteractiveMode::Always && !options.verbose { if let Err(e) = fs::remove_dir_all(path) { - had_err = true; - if e.kind() == std::io::ErrorKind::PermissionDenied { - // GNU compatibility (rm/fail-eacces.sh) - // here, GNU doesn't use some kind of remove_dir_all - // It will show directory+file - show_error!("cannot remove {}: {}", path.quote(), "Permission denied"); - } else { - show_error!("cannot remove {}: {}", path.quote(), e); + // GNU compatibility (rm/empty-inacc.sh) + // remove_dir_all failed. maybe it is because of the permissions + // but if the directory is empty, remove_dir might work. + // So, let's try that before failing for real + if let Err(_e) = fs::remove_dir(path) { + had_err = true; + if e.kind() == std::io::ErrorKind::PermissionDenied { + // GNU compatibility (rm/fail-eacces.sh) + // here, GNU doesn't use some kind of remove_dir_all + // It will show directory+file + show_error!("cannot remove {}: {}", path.quote(), "Permission denied"); + } else { + show_error!("cannot remove {}: {}", path.quote(), e); + } } } } else { diff --git a/tests/by-util/test_rm.rs b/tests/by-util/test_rm.rs index 73f99566c4..5125c746da 100644 --- a/tests/by-util/test_rm.rs +++ b/tests/by-util/test_rm.rs @@ -647,6 +647,21 @@ fn test_prompt_write_protected_no() { assert!(at.file_exists(file_2)); } +#[cfg(feature = "chmod")] +#[test] +fn test_remove_inaccessible_dir() { + let scene = TestScenario::new(util_name!()); + let at = &scene.fixtures; + let dir_1 = "test_rm_protected"; + + at.mkdir(dir_1); + + scene.ccmd("chmod").arg("0").arg(dir_1).succeeds(); + + scene.ucmd().arg("-rf").arg(dir_1).succeeds(); + assert!(!at.dir_exists(dir_1)); +} + #[test] #[cfg(not(windows))] fn test_fifo_removal() { From f557c5936430de6b864e8b1f120a41b160d65f74 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Oct 2023 11:43:07 +0200 Subject: [PATCH 15/32] doc: recommend the rust-gdb helper --- DEVELOPMENT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 308daba981..9cb81a88ce 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -157,7 +157,7 @@ cargo nextest run --features unix --no-fail-fast To debug: ```shell -gdb --args target/debug/coreutils ls +rust-gdb --args target/debug/coreutils ls (gdb) b ls.rs:79 (gdb) run ``` From 226680aa001457140985412adbdd5778d3dddc6e Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Oct 2023 13:45:29 +0200 Subject: [PATCH 16/32] Ignore inacc spell --- src/uu/rm/src/rm.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uu/rm/src/rm.rs b/src/uu/rm/src/rm.rs index 29ebd47580..cb88b6a2b9 100644 --- a/src/uu/rm/src/rm.rs +++ b/src/uu/rm/src/rm.rs @@ -3,7 +3,7 @@ // For the full copyright and license information, please view the LICENSE // file that was distributed with this source code. -// spell-checker:ignore (path) eacces +// spell-checker:ignore (path) eacces inacc use clap::{builder::ValueParser, crate_version, parser::ValueSource, Arg, ArgAction, Command}; use std::collections::VecDeque; From f6880bff8f5faca21a2e420261d0aac258ac9eb7 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Sat, 14 Oct 2023 14:58:41 +0200 Subject: [PATCH 17/32] expr: test some invalid syntaxes --- tests/by-util/test_expr.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/by-util/test_expr.rs b/tests/by-util/test_expr.rs index 1064ef525e..3f403c7ea3 100644 --- a/tests/by-util/test_expr.rs +++ b/tests/by-util/test_expr.rs @@ -275,3 +275,16 @@ fn test_invalid_substr() { .code_is(1) .stdout_only("\n"); } + +#[test] +fn test_invalid_syntax() { + let invalid_syntaxes = [["12", "12"], ["12", "|"], ["|", "12"]]; + + for invalid_syntax in invalid_syntaxes { + new_ucmd!() + .args(&invalid_syntax) + .fails() + .code_is(2) + .stderr_contains("syntax error"); + } +} From 5b1755387f85217680831e582b97fb62d002db0c Mon Sep 17 00:00:00 2001 From: Zhuoxun Yang Date: Sat, 14 Oct 2023 23:18:15 +0800 Subject: [PATCH 18/32] tests/expr: test escape --- tests/by-util/test_expr.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/by-util/test_expr.rs b/tests/by-util/test_expr.rs index 1064ef525e..b70c60fb37 100644 --- a/tests/by-util/test_expr.rs +++ b/tests/by-util/test_expr.rs @@ -138,6 +138,11 @@ fn test_or() { .args(&["0", "|", "10", "/", "5"]) .succeeds() .stdout_only("2\n"); + + new_ucmd!() + .args(&["12", "|", "9a", "+", "1"]) + .succeeds() + .stdout_only("12\n"); } #[test] @@ -275,3 +280,23 @@ fn test_invalid_substr() { .code_is(1) .stdout_only("\n"); } + +#[test] +fn test_escape() { + new_ucmd!().args(&["+", "1"]).succeeds().stdout_only("1\n"); + + new_ucmd!() + .args(&["1", "+", "+", "1"]) + .succeeds() + .stdout_only("2\n"); + + new_ucmd!() + .args(&["2", "*", "+", "3"]) + .succeeds() + .stdout_only("6\n"); + + new_ucmd!() + .args(&["(", "1", ")", "+", "1"]) + .succeeds() + .stdout_only("2\n"); +} From 4f20773b4f78dcd1d8648bb93c11c5141b6f9095 Mon Sep 17 00:00:00 2001 From: Zhuoxun Yang Date: Sat, 14 Oct 2023 23:20:45 +0800 Subject: [PATCH 19/32] expr: fix escape --- src/uu/expr/src/tokens.rs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/uu/expr/src/tokens.rs b/src/uu/expr/src/tokens.rs index 3c5cac060f..8961935151 100644 --- a/src/uu/expr/src/tokens.rs +++ b/src/uu/expr/src/tokens.rs @@ -16,8 +16,6 @@ // spell-checker:ignore (ToDO) paren -use num_bigint::BigInt; - #[derive(Debug, Clone)] pub enum Token { Value { @@ -59,11 +57,8 @@ impl Token { } } - fn is_a_number(&self) -> bool { - match self { - Self::Value { value, .. } => value.parse::().is_ok(), - _ => false, - } + fn is_a_value(&self) -> bool { + matches!(*self, Self::Value { .. }) } fn is_a_close_paren(&self) -> bool { @@ -131,14 +126,14 @@ fn maybe_dump_tokens_acc(tokens_acc: &[(usize, Token)]) { } fn push_token_if_not_escaped(acc: &mut Vec<(usize, Token)>, tok_idx: usize, token: Token, s: &str) { - // Smells heuristics... :( + // `+` may escaped such as `expr + 1` and `expr 1 + + 1` let prev_is_plus = match acc.last() { None => false, Some(t) => t.1.is_infix_plus(), }; let should_use_as_escaped = if prev_is_plus && acc.len() >= 2 { let pre_prev = &acc[acc.len() - 2]; - !(pre_prev.1.is_a_number() || pre_prev.1.is_a_close_paren()) + !(pre_prev.1.is_a_value() || pre_prev.1.is_a_close_paren()) } else { prev_is_plus }; From f89e6943b7ad7b00b4b0843cf756d3274b48357b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 14 Oct 2023 15:34:14 +0000 Subject: [PATCH 20/32] chore(deps): update rust crate regex to 1.10.1 --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a0a62d13ba..f9be5346f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1728,9 +1728,9 @@ checksum = "f1bfbf25d7eb88ddcbb1ec3d755d0634da8f7657b2cb8b74089121409ab8228f" [[package]] name = "regex" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87" +checksum = "aaac441002f822bc9705a681810a4dd2963094b9ca0ddc41cb963a4c189189ea" dependencies = [ "aho-corasick", "memchr", @@ -1740,9 +1740,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b" +checksum = "5011c7e263a695dc8ca064cddb722af1be54e517a280b12a5356f98366899e5d" dependencies = [ "aho-corasick", "memchr", @@ -1751,9 +1751,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3cbb081b9784b07cceb8824c8583f86db4814d172ab043f3c23f7dc600bf83d" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "relative-path" diff --git a/Cargo.toml b/Cargo.toml index 820568e616..975cced35b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -309,7 +309,7 @@ rand = { version = "0.8", features = ["small_rng"] } rand_core = "0.6" rayon = "1.8" redox_syscall = "0.4" -regex = "1.10.0" +regex = "1.10.1" rstest = "0.18.2" rust-ini = "0.19.0" same-file = "1.0.6" From 6ef5b272da37e44c65ea69369f6b187fe871a177 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Sun, 15 Oct 2023 14:30:17 +0200 Subject: [PATCH 21/32] expr: add missing word to comment --- src/uu/expr/src/tokens.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uu/expr/src/tokens.rs b/src/uu/expr/src/tokens.rs index 8961935151..f499881c13 100644 --- a/src/uu/expr/src/tokens.rs +++ b/src/uu/expr/src/tokens.rs @@ -126,7 +126,7 @@ fn maybe_dump_tokens_acc(tokens_acc: &[(usize, Token)]) { } fn push_token_if_not_escaped(acc: &mut Vec<(usize, Token)>, tok_idx: usize, token: Token, s: &str) { - // `+` may escaped such as `expr + 1` and `expr 1 + + 1` + // `+` may be escaped such as `expr + 1` and `expr 1 + + 1` let prev_is_plus = match acc.last() { None => false, Some(t) => t.1.is_infix_plus(), From e1bd47d5496b468607dfec1643b29fa2fbc8e0ee Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 15 Oct 2023 14:20:18 +0200 Subject: [PATCH 22/32] 0.0.21 => 0.0.22 --- Cargo.lock | 214 ++++++++++++------------- Cargo.toml | 206 ++++++++++++------------ src/uu/arch/Cargo.toml | 2 +- src/uu/base32/Cargo.toml | 2 +- src/uu/base64/Cargo.toml | 2 +- src/uu/basename/Cargo.toml | 2 +- src/uu/basenc/Cargo.toml | 2 +- src/uu/cat/Cargo.toml | 2 +- src/uu/chcon/Cargo.toml | 2 +- src/uu/chgrp/Cargo.toml | 2 +- src/uu/chmod/Cargo.toml | 2 +- src/uu/chown/Cargo.toml | 2 +- src/uu/chroot/Cargo.toml | 2 +- src/uu/cksum/Cargo.toml | 2 +- src/uu/comm/Cargo.toml | 2 +- src/uu/cp/Cargo.toml | 2 +- src/uu/csplit/Cargo.toml | 2 +- src/uu/cut/Cargo.toml | 2 +- src/uu/date/Cargo.toml | 2 +- src/uu/dd/Cargo.toml | 2 +- src/uu/df/Cargo.toml | 2 +- src/uu/dir/Cargo.toml | 2 +- src/uu/dircolors/Cargo.toml | 2 +- src/uu/dirname/Cargo.toml | 2 +- src/uu/du/Cargo.toml | 2 +- src/uu/echo/Cargo.toml | 2 +- src/uu/env/Cargo.toml | 2 +- src/uu/expand/Cargo.toml | 2 +- src/uu/expr/Cargo.toml | 2 +- src/uu/factor/Cargo.toml | 2 +- src/uu/false/Cargo.toml | 2 +- src/uu/fmt/Cargo.toml | 2 +- src/uu/fold/Cargo.toml | 2 +- src/uu/groups/Cargo.toml | 2 +- src/uu/hashsum/Cargo.toml | 2 +- src/uu/head/Cargo.toml | 2 +- src/uu/hostid/Cargo.toml | 2 +- src/uu/hostname/Cargo.toml | 2 +- src/uu/id/Cargo.toml | 2 +- src/uu/install/Cargo.toml | 2 +- src/uu/join/Cargo.toml | 2 +- src/uu/kill/Cargo.toml | 2 +- src/uu/link/Cargo.toml | 2 +- src/uu/ln/Cargo.toml | 2 +- src/uu/logname/Cargo.toml | 2 +- src/uu/ls/Cargo.toml | 2 +- src/uu/mkdir/Cargo.toml | 2 +- src/uu/mkfifo/Cargo.toml | 2 +- src/uu/mknod/Cargo.toml | 2 +- src/uu/mktemp/Cargo.toml | 2 +- src/uu/more/Cargo.toml | 2 +- src/uu/mv/Cargo.toml | 2 +- src/uu/nice/Cargo.toml | 2 +- src/uu/nl/Cargo.toml | 2 +- src/uu/nohup/Cargo.toml | 2 +- src/uu/nproc/Cargo.toml | 2 +- src/uu/numfmt/Cargo.toml | 2 +- src/uu/od/Cargo.toml | 2 +- src/uu/paste/Cargo.toml | 2 +- src/uu/pathchk/Cargo.toml | 2 +- src/uu/pinky/Cargo.toml | 2 +- src/uu/pr/Cargo.toml | 2 +- src/uu/printenv/Cargo.toml | 2 +- src/uu/printf/Cargo.toml | 2 +- src/uu/ptx/Cargo.toml | 2 +- src/uu/pwd/Cargo.toml | 2 +- src/uu/readlink/Cargo.toml | 2 +- src/uu/realpath/Cargo.toml | 2 +- src/uu/rm/Cargo.toml | 2 +- src/uu/rmdir/Cargo.toml | 2 +- src/uu/runcon/Cargo.toml | 2 +- src/uu/seq/Cargo.toml | 2 +- src/uu/shred/Cargo.toml | 2 +- src/uu/shuf/Cargo.toml | 2 +- src/uu/sleep/Cargo.toml | 2 +- src/uu/sort/Cargo.toml | 2 +- src/uu/split/Cargo.toml | 2 +- src/uu/stat/Cargo.toml | 2 +- src/uu/stdbuf/Cargo.toml | 4 +- src/uu/stdbuf/src/libstdbuf/Cargo.toml | 2 +- src/uu/stty/Cargo.toml | 2 +- src/uu/sum/Cargo.toml | 2 +- src/uu/sync/Cargo.toml | 2 +- src/uu/tac/Cargo.toml | 2 +- src/uu/tail/Cargo.toml | 2 +- src/uu/tee/Cargo.toml | 2 +- src/uu/test/Cargo.toml | 2 +- src/uu/timeout/Cargo.toml | 2 +- src/uu/touch/Cargo.toml | 2 +- src/uu/tr/Cargo.toml | 2 +- src/uu/true/Cargo.toml | 2 +- src/uu/truncate/Cargo.toml | 2 +- src/uu/tsort/Cargo.toml | 2 +- src/uu/tty/Cargo.toml | 2 +- src/uu/uname/Cargo.toml | 2 +- src/uu/unexpand/Cargo.toml | 2 +- src/uu/uniq/Cargo.toml | 2 +- src/uu/unlink/Cargo.toml | 2 +- src/uu/uptime/Cargo.toml | 2 +- src/uu/users/Cargo.toml | 2 +- src/uu/vdir/Cargo.toml | 2 +- src/uu/wc/Cargo.toml | 2 +- src/uu/who/Cargo.toml | 2 +- src/uu/whoami/Cargo.toml | 2 +- src/uu/yes/Cargo.toml | 2 +- src/uucore/Cargo.toml | 2 +- src/uucore_procs/Cargo.toml | 4 +- src/uuhelp_parser/Cargo.toml | 2 +- util/update-version.sh | 4 +- 109 files changed, 320 insertions(+), 320 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f9be5346f6..a54656d7c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -376,7 +376,7 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "coreutils" -version = "0.0.21" +version = "0.0.22" dependencies = [ "chrono", "clap", @@ -2225,7 +2225,7 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uu_arch" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "platform-info", @@ -2234,7 +2234,7 @@ dependencies = [ [[package]] name = "uu_base32" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2242,7 +2242,7 @@ dependencies = [ [[package]] name = "uu_base64" -version = "0.0.21" +version = "0.0.22" dependencies = [ "uu_base32", "uucore", @@ -2250,7 +2250,7 @@ dependencies = [ [[package]] name = "uu_basename" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2258,7 +2258,7 @@ dependencies = [ [[package]] name = "uu_basenc" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uu_base32", @@ -2267,7 +2267,7 @@ dependencies = [ [[package]] name = "uu_cat" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "nix", @@ -2277,7 +2277,7 @@ dependencies = [ [[package]] name = "uu_chcon" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "fts-sys", @@ -2289,7 +2289,7 @@ dependencies = [ [[package]] name = "uu_chgrp" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2297,7 +2297,7 @@ dependencies = [ [[package]] name = "uu_chmod" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2306,7 +2306,7 @@ dependencies = [ [[package]] name = "uu_chown" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2314,7 +2314,7 @@ dependencies = [ [[package]] name = "uu_chroot" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2322,7 +2322,7 @@ dependencies = [ [[package]] name = "uu_cksum" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "hex", @@ -2331,7 +2331,7 @@ dependencies = [ [[package]] name = "uu_comm" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2339,7 +2339,7 @@ dependencies = [ [[package]] name = "uu_cp" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "exacl", @@ -2355,7 +2355,7 @@ dependencies = [ [[package]] name = "uu_csplit" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "regex", @@ -2365,7 +2365,7 @@ dependencies = [ [[package]] name = "uu_cut" -version = "0.0.21" +version = "0.0.22" dependencies = [ "bstr", "clap", @@ -2375,7 +2375,7 @@ dependencies = [ [[package]] name = "uu_date" -version = "0.0.21" +version = "0.0.22" dependencies = [ "chrono", "clap", @@ -2387,7 +2387,7 @@ dependencies = [ [[package]] name = "uu_dd" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "gcd", @@ -2399,7 +2399,7 @@ dependencies = [ [[package]] name = "uu_df" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "tempfile", @@ -2409,7 +2409,7 @@ dependencies = [ [[package]] name = "uu_dir" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uu_ls", @@ -2418,7 +2418,7 @@ dependencies = [ [[package]] name = "uu_dircolors" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2426,7 +2426,7 @@ dependencies = [ [[package]] name = "uu_dirname" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2434,7 +2434,7 @@ dependencies = [ [[package]] name = "uu_du" -version = "0.0.21" +version = "0.0.22" dependencies = [ "chrono", "clap", @@ -2445,7 +2445,7 @@ dependencies = [ [[package]] name = "uu_echo" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2453,7 +2453,7 @@ dependencies = [ [[package]] name = "uu_env" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "nix", @@ -2463,7 +2463,7 @@ dependencies = [ [[package]] name = "uu_expand" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "unicode-width", @@ -2472,7 +2472,7 @@ dependencies = [ [[package]] name = "uu_expr" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "num-bigint", @@ -2483,7 +2483,7 @@ dependencies = [ [[package]] name = "uu_factor" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "coz", @@ -2496,7 +2496,7 @@ dependencies = [ [[package]] name = "uu_false" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2504,7 +2504,7 @@ dependencies = [ [[package]] name = "uu_fmt" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "unicode-width", @@ -2513,7 +2513,7 @@ dependencies = [ [[package]] name = "uu_fold" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2521,7 +2521,7 @@ dependencies = [ [[package]] name = "uu_groups" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2529,7 +2529,7 @@ dependencies = [ [[package]] name = "uu_hashsum" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "hex", @@ -2540,7 +2540,7 @@ dependencies = [ [[package]] name = "uu_head" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "memchr", @@ -2549,7 +2549,7 @@ dependencies = [ [[package]] name = "uu_hostid" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2558,7 +2558,7 @@ dependencies = [ [[package]] name = "uu_hostname" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "hostname", @@ -2568,7 +2568,7 @@ dependencies = [ [[package]] name = "uu_id" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "selinux", @@ -2577,7 +2577,7 @@ dependencies = [ [[package]] name = "uu_install" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "file_diff", @@ -2588,7 +2588,7 @@ dependencies = [ [[package]] name = "uu_join" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "memchr", @@ -2597,7 +2597,7 @@ dependencies = [ [[package]] name = "uu_kill" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "nix", @@ -2606,7 +2606,7 @@ dependencies = [ [[package]] name = "uu_link" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2614,7 +2614,7 @@ dependencies = [ [[package]] name = "uu_ln" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2622,7 +2622,7 @@ dependencies = [ [[package]] name = "uu_logname" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2631,7 +2631,7 @@ dependencies = [ [[package]] name = "uu_ls" -version = "0.0.21" +version = "0.0.22" dependencies = [ "chrono", "clap", @@ -2648,7 +2648,7 @@ dependencies = [ [[package]] name = "uu_mkdir" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2656,7 +2656,7 @@ dependencies = [ [[package]] name = "uu_mkfifo" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2665,7 +2665,7 @@ dependencies = [ [[package]] name = "uu_mknod" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2674,7 +2674,7 @@ dependencies = [ [[package]] name = "uu_mktemp" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "rand", @@ -2684,7 +2684,7 @@ dependencies = [ [[package]] name = "uu_more" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "crossterm", @@ -2696,7 +2696,7 @@ dependencies = [ [[package]] name = "uu_mv" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "fs_extra", @@ -2706,7 +2706,7 @@ dependencies = [ [[package]] name = "uu_nice" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2716,7 +2716,7 @@ dependencies = [ [[package]] name = "uu_nl" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "regex", @@ -2725,7 +2725,7 @@ dependencies = [ [[package]] name = "uu_nohup" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2734,7 +2734,7 @@ dependencies = [ [[package]] name = "uu_nproc" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2743,7 +2743,7 @@ dependencies = [ [[package]] name = "uu_numfmt" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2751,7 +2751,7 @@ dependencies = [ [[package]] name = "uu_od" -version = "0.0.21" +version = "0.0.22" dependencies = [ "byteorder", "clap", @@ -2761,7 +2761,7 @@ dependencies = [ [[package]] name = "uu_paste" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2769,7 +2769,7 @@ dependencies = [ [[package]] name = "uu_pathchk" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2778,7 +2778,7 @@ dependencies = [ [[package]] name = "uu_pinky" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2786,7 +2786,7 @@ dependencies = [ [[package]] name = "uu_pr" -version = "0.0.21" +version = "0.0.22" dependencies = [ "chrono", "clap", @@ -2798,7 +2798,7 @@ dependencies = [ [[package]] name = "uu_printenv" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2806,7 +2806,7 @@ dependencies = [ [[package]] name = "uu_printf" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2814,7 +2814,7 @@ dependencies = [ [[package]] name = "uu_ptx" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "regex", @@ -2823,7 +2823,7 @@ dependencies = [ [[package]] name = "uu_pwd" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2831,7 +2831,7 @@ dependencies = [ [[package]] name = "uu_readlink" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2839,7 +2839,7 @@ dependencies = [ [[package]] name = "uu_realpath" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2847,7 +2847,7 @@ dependencies = [ [[package]] name = "uu_rm" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2858,7 +2858,7 @@ dependencies = [ [[package]] name = "uu_rmdir" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2867,7 +2867,7 @@ dependencies = [ [[package]] name = "uu_runcon" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2878,7 +2878,7 @@ dependencies = [ [[package]] name = "uu_seq" -version = "0.0.21" +version = "0.0.22" dependencies = [ "bigdecimal", "clap", @@ -2889,7 +2889,7 @@ dependencies = [ [[package]] name = "uu_shred" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -2899,7 +2899,7 @@ dependencies = [ [[package]] name = "uu_shuf" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "memchr", @@ -2910,7 +2910,7 @@ dependencies = [ [[package]] name = "uu_sleep" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "fundu", @@ -2919,7 +2919,7 @@ dependencies = [ [[package]] name = "uu_sort" -version = "0.0.21" +version = "0.0.22" dependencies = [ "binary-heap-plus", "clap", @@ -2938,7 +2938,7 @@ dependencies = [ [[package]] name = "uu_split" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "memchr", @@ -2947,7 +2947,7 @@ dependencies = [ [[package]] name = "uu_stat" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2955,7 +2955,7 @@ dependencies = [ [[package]] name = "uu_stdbuf" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "tempfile", @@ -2965,7 +2965,7 @@ dependencies = [ [[package]] name = "uu_stdbuf_libstdbuf" -version = "0.0.21" +version = "0.0.22" dependencies = [ "cpp", "cpp_build", @@ -2975,7 +2975,7 @@ dependencies = [ [[package]] name = "uu_stty" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "nix", @@ -2984,7 +2984,7 @@ dependencies = [ [[package]] name = "uu_sum" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -2992,7 +2992,7 @@ dependencies = [ [[package]] name = "uu_sync" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -3003,7 +3003,7 @@ dependencies = [ [[package]] name = "uu_tac" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "memchr", @@ -3014,7 +3014,7 @@ dependencies = [ [[package]] name = "uu_tail" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "fundu", @@ -3030,7 +3030,7 @@ dependencies = [ [[package]] name = "uu_tee" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -3039,7 +3039,7 @@ dependencies = [ [[package]] name = "uu_test" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -3049,7 +3049,7 @@ dependencies = [ [[package]] name = "uu_timeout" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -3059,7 +3059,7 @@ dependencies = [ [[package]] name = "uu_touch" -version = "0.0.21" +version = "0.0.22" dependencies = [ "chrono", "clap", @@ -3071,7 +3071,7 @@ dependencies = [ [[package]] name = "uu_tr" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "nom", @@ -3080,7 +3080,7 @@ dependencies = [ [[package]] name = "uu_true" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -3088,7 +3088,7 @@ dependencies = [ [[package]] name = "uu_truncate" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -3096,7 +3096,7 @@ dependencies = [ [[package]] name = "uu_tsort" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -3104,7 +3104,7 @@ dependencies = [ [[package]] name = "uu_tty" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "nix", @@ -3113,7 +3113,7 @@ dependencies = [ [[package]] name = "uu_uname" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "platform-info", @@ -3122,7 +3122,7 @@ dependencies = [ [[package]] name = "uu_unexpand" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "unicode-width", @@ -3131,7 +3131,7 @@ dependencies = [ [[package]] name = "uu_uniq" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -3139,7 +3139,7 @@ dependencies = [ [[package]] name = "uu_unlink" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -3147,7 +3147,7 @@ dependencies = [ [[package]] name = "uu_uptime" -version = "0.0.21" +version = "0.0.22" dependencies = [ "chrono", "clap", @@ -3156,7 +3156,7 @@ dependencies = [ [[package]] name = "uu_users" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -3164,7 +3164,7 @@ dependencies = [ [[package]] name = "uu_vdir" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uu_ls", @@ -3173,7 +3173,7 @@ dependencies = [ [[package]] name = "uu_wc" -version = "0.0.21" +version = "0.0.22" dependencies = [ "bytecount", "clap", @@ -3186,7 +3186,7 @@ dependencies = [ [[package]] name = "uu_who" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "uucore", @@ -3194,7 +3194,7 @@ dependencies = [ [[package]] name = "uu_whoami" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "libc", @@ -3204,7 +3204,7 @@ dependencies = [ [[package]] name = "uu_yes" -version = "0.0.21" +version = "0.0.22" dependencies = [ "clap", "itertools", @@ -3214,7 +3214,7 @@ dependencies = [ [[package]] name = "uucore" -version = "0.0.21" +version = "0.0.22" dependencies = [ "blake2b_simd", "blake3", @@ -3250,7 +3250,7 @@ dependencies = [ [[package]] name = "uucore_procs" -version = "0.0.21" +version = "0.0.22" dependencies = [ "proc-macro2", "quote", @@ -3259,7 +3259,7 @@ dependencies = [ [[package]] name = "uuhelp_parser" -version = "0.0.21" +version = "0.0.22" [[package]] name = "uuid" diff --git a/Cargo.toml b/Cargo.toml index 975cced35b..39232b50d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ [package] name = "coreutils" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "coreutils ~ GNU coreutils (updated); implemented as universal (cross-platform) utils, written in Rust" @@ -361,109 +361,109 @@ zip = { workspace = true, optional = true } uuhelp_parser = { optional = true, version = ">=0.0.19", path = "src/uuhelp_parser" } # * uutils -uu_test = { optional = true, version = "0.0.21", package = "uu_test", path = "src/uu/test" } +uu_test = { optional = true, version = "0.0.22", package = "uu_test", path = "src/uu/test" } # -arch = { optional = true, version = "0.0.21", package = "uu_arch", path = "src/uu/arch" } -base32 = { optional = true, version = "0.0.21", package = "uu_base32", path = "src/uu/base32" } -base64 = { optional = true, version = "0.0.21", package = "uu_base64", path = "src/uu/base64" } -basename = { optional = true, version = "0.0.21", package = "uu_basename", path = "src/uu/basename" } -basenc = { optional = true, version = "0.0.21", package = "uu_basenc", path = "src/uu/basenc" } -cat = { optional = true, version = "0.0.21", package = "uu_cat", path = "src/uu/cat" } -chcon = { optional = true, version = "0.0.21", package = "uu_chcon", path = "src/uu/chcon" } -chgrp = { optional = true, version = "0.0.21", package = "uu_chgrp", path = "src/uu/chgrp" } -chmod = { optional = true, version = "0.0.21", package = "uu_chmod", path = "src/uu/chmod" } -chown = { optional = true, version = "0.0.21", package = "uu_chown", path = "src/uu/chown" } -chroot = { optional = true, version = "0.0.21", package = "uu_chroot", path = "src/uu/chroot" } -cksum = { optional = true, version = "0.0.21", package = "uu_cksum", path = "src/uu/cksum" } -comm = { optional = true, version = "0.0.21", package = "uu_comm", path = "src/uu/comm" } -cp = { optional = true, version = "0.0.21", package = "uu_cp", path = "src/uu/cp" } -csplit = { optional = true, version = "0.0.21", package = "uu_csplit", path = "src/uu/csplit" } -cut = { optional = true, version = "0.0.21", package = "uu_cut", path = "src/uu/cut" } -date = { optional = true, version = "0.0.21", package = "uu_date", path = "src/uu/date" } -dd = { optional = true, version = "0.0.21", package = "uu_dd", path = "src/uu/dd" } -df = { optional = true, version = "0.0.21", package = "uu_df", path = "src/uu/df" } -dir = { optional = true, version = "0.0.21", package = "uu_dir", path = "src/uu/dir" } -dircolors = { optional = true, version = "0.0.21", package = "uu_dircolors", path = "src/uu/dircolors" } -dirname = { optional = true, version = "0.0.21", package = "uu_dirname", path = "src/uu/dirname" } -du = { optional = true, version = "0.0.21", package = "uu_du", path = "src/uu/du" } -echo = { optional = true, version = "0.0.21", package = "uu_echo", path = "src/uu/echo" } -env = { optional = true, version = "0.0.21", package = "uu_env", path = "src/uu/env" } -expand = { optional = true, version = "0.0.21", package = "uu_expand", path = "src/uu/expand" } -expr = { optional = true, version = "0.0.21", package = "uu_expr", path = "src/uu/expr" } -factor = { optional = true, version = "0.0.21", package = "uu_factor", path = "src/uu/factor" } -false = { optional = true, version = "0.0.21", package = "uu_false", path = "src/uu/false" } -fmt = { optional = true, version = "0.0.21", package = "uu_fmt", path = "src/uu/fmt" } -fold = { optional = true, version = "0.0.21", package = "uu_fold", path = "src/uu/fold" } -groups = { optional = true, version = "0.0.21", package = "uu_groups", path = "src/uu/groups" } -hashsum = { optional = true, version = "0.0.21", package = "uu_hashsum", path = "src/uu/hashsum" } -head = { optional = true, version = "0.0.21", package = "uu_head", path = "src/uu/head" } -hostid = { optional = true, version = "0.0.21", package = "uu_hostid", path = "src/uu/hostid" } -hostname = { optional = true, version = "0.0.21", package = "uu_hostname", path = "src/uu/hostname" } -id = { optional = true, version = "0.0.21", package = "uu_id", path = "src/uu/id" } -install = { optional = true, version = "0.0.21", package = "uu_install", path = "src/uu/install" } -join = { optional = true, version = "0.0.21", package = "uu_join", path = "src/uu/join" } -kill = { optional = true, version = "0.0.21", package = "uu_kill", path = "src/uu/kill" } -link = { optional = true, version = "0.0.21", package = "uu_link", path = "src/uu/link" } -ln = { optional = true, version = "0.0.21", package = "uu_ln", path = "src/uu/ln" } -ls = { optional = true, version = "0.0.21", package = "uu_ls", path = "src/uu/ls" } -logname = { optional = true, version = "0.0.21", package = "uu_logname", path = "src/uu/logname" } -mkdir = { optional = true, version = "0.0.21", package = "uu_mkdir", path = "src/uu/mkdir" } -mkfifo = { optional = true, version = "0.0.21", package = "uu_mkfifo", path = "src/uu/mkfifo" } -mknod = { optional = true, version = "0.0.21", package = "uu_mknod", path = "src/uu/mknod" } -mktemp = { optional = true, version = "0.0.21", package = "uu_mktemp", path = "src/uu/mktemp" } -more = { optional = true, version = "0.0.21", package = "uu_more", path = "src/uu/more" } -mv = { optional = true, version = "0.0.21", package = "uu_mv", path = "src/uu/mv" } -nice = { optional = true, version = "0.0.21", package = "uu_nice", path = "src/uu/nice" } -nl = { optional = true, version = "0.0.21", package = "uu_nl", path = "src/uu/nl" } -nohup = { optional = true, version = "0.0.21", package = "uu_nohup", path = "src/uu/nohup" } -nproc = { optional = true, version = "0.0.21", package = "uu_nproc", path = "src/uu/nproc" } -numfmt = { optional = true, version = "0.0.21", package = "uu_numfmt", path = "src/uu/numfmt" } -od = { optional = true, version = "0.0.21", package = "uu_od", path = "src/uu/od" } -paste = { optional = true, version = "0.0.21", package = "uu_paste", path = "src/uu/paste" } -pathchk = { optional = true, version = "0.0.21", package = "uu_pathchk", path = "src/uu/pathchk" } -pinky = { optional = true, version = "0.0.21", package = "uu_pinky", path = "src/uu/pinky" } -pr = { optional = true, version = "0.0.21", package = "uu_pr", path = "src/uu/pr" } -printenv = { optional = true, version = "0.0.21", package = "uu_printenv", path = "src/uu/printenv" } -printf = { optional = true, version = "0.0.21", package = "uu_printf", path = "src/uu/printf" } -ptx = { optional = true, version = "0.0.21", package = "uu_ptx", path = "src/uu/ptx" } -pwd = { optional = true, version = "0.0.21", package = "uu_pwd", path = "src/uu/pwd" } -readlink = { optional = true, version = "0.0.21", package = "uu_readlink", path = "src/uu/readlink" } -realpath = { optional = true, version = "0.0.21", package = "uu_realpath", path = "src/uu/realpath" } -rm = { optional = true, version = "0.0.21", package = "uu_rm", path = "src/uu/rm" } -rmdir = { optional = true, version = "0.0.21", package = "uu_rmdir", path = "src/uu/rmdir" } -runcon = { optional = true, version = "0.0.21", package = "uu_runcon", path = "src/uu/runcon" } -seq = { optional = true, version = "0.0.21", package = "uu_seq", path = "src/uu/seq" } -shred = { optional = true, version = "0.0.21", package = "uu_shred", path = "src/uu/shred" } -shuf = { optional = true, version = "0.0.21", package = "uu_shuf", path = "src/uu/shuf" } -sleep = { optional = true, version = "0.0.21", package = "uu_sleep", path = "src/uu/sleep" } -sort = { optional = true, version = "0.0.21", package = "uu_sort", path = "src/uu/sort" } -split = { optional = true, version = "0.0.21", package = "uu_split", path = "src/uu/split" } -stat = { optional = true, version = "0.0.21", package = "uu_stat", path = "src/uu/stat" } -stdbuf = { optional = true, version = "0.0.21", package = "uu_stdbuf", path = "src/uu/stdbuf" } -stty = { optional = true, version = "0.0.21", package = "uu_stty", path = "src/uu/stty" } -sum = { optional = true, version = "0.0.21", package = "uu_sum", path = "src/uu/sum" } -sync = { optional = true, version = "0.0.21", package = "uu_sync", path = "src/uu/sync" } -tac = { optional = true, version = "0.0.21", package = "uu_tac", path = "src/uu/tac" } -tail = { optional = true, version = "0.0.21", package = "uu_tail", path = "src/uu/tail" } -tee = { optional = true, version = "0.0.21", package = "uu_tee", path = "src/uu/tee" } -timeout = { optional = true, version = "0.0.21", package = "uu_timeout", path = "src/uu/timeout" } -touch = { optional = true, version = "0.0.21", package = "uu_touch", path = "src/uu/touch" } -tr = { optional = true, version = "0.0.21", package = "uu_tr", path = "src/uu/tr" } -true = { optional = true, version = "0.0.21", package = "uu_true", path = "src/uu/true" } -truncate = { optional = true, version = "0.0.21", package = "uu_truncate", path = "src/uu/truncate" } -tsort = { optional = true, version = "0.0.21", package = "uu_tsort", path = "src/uu/tsort" } -tty = { optional = true, version = "0.0.21", package = "uu_tty", path = "src/uu/tty" } -uname = { optional = true, version = "0.0.21", package = "uu_uname", path = "src/uu/uname" } -unexpand = { optional = true, version = "0.0.21", package = "uu_unexpand", path = "src/uu/unexpand" } -uniq = { optional = true, version = "0.0.21", package = "uu_uniq", path = "src/uu/uniq" } -unlink = { optional = true, version = "0.0.21", package = "uu_unlink", path = "src/uu/unlink" } -uptime = { optional = true, version = "0.0.21", package = "uu_uptime", path = "src/uu/uptime" } -users = { optional = true, version = "0.0.21", package = "uu_users", path = "src/uu/users" } -vdir = { optional = true, version = "0.0.21", package = "uu_vdir", path = "src/uu/vdir" } -wc = { optional = true, version = "0.0.21", package = "uu_wc", path = "src/uu/wc" } -who = { optional = true, version = "0.0.21", package = "uu_who", path = "src/uu/who" } -whoami = { optional = true, version = "0.0.21", package = "uu_whoami", path = "src/uu/whoami" } -yes = { optional = true, version = "0.0.21", package = "uu_yes", path = "src/uu/yes" } +arch = { optional = true, version = "0.0.22", package = "uu_arch", path = "src/uu/arch" } +base32 = { optional = true, version = "0.0.22", package = "uu_base32", path = "src/uu/base32" } +base64 = { optional = true, version = "0.0.22", package = "uu_base64", path = "src/uu/base64" } +basename = { optional = true, version = "0.0.22", package = "uu_basename", path = "src/uu/basename" } +basenc = { optional = true, version = "0.0.22", package = "uu_basenc", path = "src/uu/basenc" } +cat = { optional = true, version = "0.0.22", package = "uu_cat", path = "src/uu/cat" } +chcon = { optional = true, version = "0.0.22", package = "uu_chcon", path = "src/uu/chcon" } +chgrp = { optional = true, version = "0.0.22", package = "uu_chgrp", path = "src/uu/chgrp" } +chmod = { optional = true, version = "0.0.22", package = "uu_chmod", path = "src/uu/chmod" } +chown = { optional = true, version = "0.0.22", package = "uu_chown", path = "src/uu/chown" } +chroot = { optional = true, version = "0.0.22", package = "uu_chroot", path = "src/uu/chroot" } +cksum = { optional = true, version = "0.0.22", package = "uu_cksum", path = "src/uu/cksum" } +comm = { optional = true, version = "0.0.22", package = "uu_comm", path = "src/uu/comm" } +cp = { optional = true, version = "0.0.22", package = "uu_cp", path = "src/uu/cp" } +csplit = { optional = true, version = "0.0.22", package = "uu_csplit", path = "src/uu/csplit" } +cut = { optional = true, version = "0.0.22", package = "uu_cut", path = "src/uu/cut" } +date = { optional = true, version = "0.0.22", package = "uu_date", path = "src/uu/date" } +dd = { optional = true, version = "0.0.22", package = "uu_dd", path = "src/uu/dd" } +df = { optional = true, version = "0.0.22", package = "uu_df", path = "src/uu/df" } +dir = { optional = true, version = "0.0.22", package = "uu_dir", path = "src/uu/dir" } +dircolors = { optional = true, version = "0.0.22", package = "uu_dircolors", path = "src/uu/dircolors" } +dirname = { optional = true, version = "0.0.22", package = "uu_dirname", path = "src/uu/dirname" } +du = { optional = true, version = "0.0.22", package = "uu_du", path = "src/uu/du" } +echo = { optional = true, version = "0.0.22", package = "uu_echo", path = "src/uu/echo" } +env = { optional = true, version = "0.0.22", package = "uu_env", path = "src/uu/env" } +expand = { optional = true, version = "0.0.22", package = "uu_expand", path = "src/uu/expand" } +expr = { optional = true, version = "0.0.22", package = "uu_expr", path = "src/uu/expr" } +factor = { optional = true, version = "0.0.22", package = "uu_factor", path = "src/uu/factor" } +false = { optional = true, version = "0.0.22", package = "uu_false", path = "src/uu/false" } +fmt = { optional = true, version = "0.0.22", package = "uu_fmt", path = "src/uu/fmt" } +fold = { optional = true, version = "0.0.22", package = "uu_fold", path = "src/uu/fold" } +groups = { optional = true, version = "0.0.22", package = "uu_groups", path = "src/uu/groups" } +hashsum = { optional = true, version = "0.0.22", package = "uu_hashsum", path = "src/uu/hashsum" } +head = { optional = true, version = "0.0.22", package = "uu_head", path = "src/uu/head" } +hostid = { optional = true, version = "0.0.22", package = "uu_hostid", path = "src/uu/hostid" } +hostname = { optional = true, version = "0.0.22", package = "uu_hostname", path = "src/uu/hostname" } +id = { optional = true, version = "0.0.22", package = "uu_id", path = "src/uu/id" } +install = { optional = true, version = "0.0.22", package = "uu_install", path = "src/uu/install" } +join = { optional = true, version = "0.0.22", package = "uu_join", path = "src/uu/join" } +kill = { optional = true, version = "0.0.22", package = "uu_kill", path = "src/uu/kill" } +link = { optional = true, version = "0.0.22", package = "uu_link", path = "src/uu/link" } +ln = { optional = true, version = "0.0.22", package = "uu_ln", path = "src/uu/ln" } +ls = { optional = true, version = "0.0.22", package = "uu_ls", path = "src/uu/ls" } +logname = { optional = true, version = "0.0.22", package = "uu_logname", path = "src/uu/logname" } +mkdir = { optional = true, version = "0.0.22", package = "uu_mkdir", path = "src/uu/mkdir" } +mkfifo = { optional = true, version = "0.0.22", package = "uu_mkfifo", path = "src/uu/mkfifo" } +mknod = { optional = true, version = "0.0.22", package = "uu_mknod", path = "src/uu/mknod" } +mktemp = { optional = true, version = "0.0.22", package = "uu_mktemp", path = "src/uu/mktemp" } +more = { optional = true, version = "0.0.22", package = "uu_more", path = "src/uu/more" } +mv = { optional = true, version = "0.0.22", package = "uu_mv", path = "src/uu/mv" } +nice = { optional = true, version = "0.0.22", package = "uu_nice", path = "src/uu/nice" } +nl = { optional = true, version = "0.0.22", package = "uu_nl", path = "src/uu/nl" } +nohup = { optional = true, version = "0.0.22", package = "uu_nohup", path = "src/uu/nohup" } +nproc = { optional = true, version = "0.0.22", package = "uu_nproc", path = "src/uu/nproc" } +numfmt = { optional = true, version = "0.0.22", package = "uu_numfmt", path = "src/uu/numfmt" } +od = { optional = true, version = "0.0.22", package = "uu_od", path = "src/uu/od" } +paste = { optional = true, version = "0.0.22", package = "uu_paste", path = "src/uu/paste" } +pathchk = { optional = true, version = "0.0.22", package = "uu_pathchk", path = "src/uu/pathchk" } +pinky = { optional = true, version = "0.0.22", package = "uu_pinky", path = "src/uu/pinky" } +pr = { optional = true, version = "0.0.22", package = "uu_pr", path = "src/uu/pr" } +printenv = { optional = true, version = "0.0.22", package = "uu_printenv", path = "src/uu/printenv" } +printf = { optional = true, version = "0.0.22", package = "uu_printf", path = "src/uu/printf" } +ptx = { optional = true, version = "0.0.22", package = "uu_ptx", path = "src/uu/ptx" } +pwd = { optional = true, version = "0.0.22", package = "uu_pwd", path = "src/uu/pwd" } +readlink = { optional = true, version = "0.0.22", package = "uu_readlink", path = "src/uu/readlink" } +realpath = { optional = true, version = "0.0.22", package = "uu_realpath", path = "src/uu/realpath" } +rm = { optional = true, version = "0.0.22", package = "uu_rm", path = "src/uu/rm" } +rmdir = { optional = true, version = "0.0.22", package = "uu_rmdir", path = "src/uu/rmdir" } +runcon = { optional = true, version = "0.0.22", package = "uu_runcon", path = "src/uu/runcon" } +seq = { optional = true, version = "0.0.22", package = "uu_seq", path = "src/uu/seq" } +shred = { optional = true, version = "0.0.22", package = "uu_shred", path = "src/uu/shred" } +shuf = { optional = true, version = "0.0.22", package = "uu_shuf", path = "src/uu/shuf" } +sleep = { optional = true, version = "0.0.22", package = "uu_sleep", path = "src/uu/sleep" } +sort = { optional = true, version = "0.0.22", package = "uu_sort", path = "src/uu/sort" } +split = { optional = true, version = "0.0.22", package = "uu_split", path = "src/uu/split" } +stat = { optional = true, version = "0.0.22", package = "uu_stat", path = "src/uu/stat" } +stdbuf = { optional = true, version = "0.0.22", package = "uu_stdbuf", path = "src/uu/stdbuf" } +stty = { optional = true, version = "0.0.22", package = "uu_stty", path = "src/uu/stty" } +sum = { optional = true, version = "0.0.22", package = "uu_sum", path = "src/uu/sum" } +sync = { optional = true, version = "0.0.22", package = "uu_sync", path = "src/uu/sync" } +tac = { optional = true, version = "0.0.22", package = "uu_tac", path = "src/uu/tac" } +tail = { optional = true, version = "0.0.22", package = "uu_tail", path = "src/uu/tail" } +tee = { optional = true, version = "0.0.22", package = "uu_tee", path = "src/uu/tee" } +timeout = { optional = true, version = "0.0.22", package = "uu_timeout", path = "src/uu/timeout" } +touch = { optional = true, version = "0.0.22", package = "uu_touch", path = "src/uu/touch" } +tr = { optional = true, version = "0.0.22", package = "uu_tr", path = "src/uu/tr" } +true = { optional = true, version = "0.0.22", package = "uu_true", path = "src/uu/true" } +truncate = { optional = true, version = "0.0.22", package = "uu_truncate", path = "src/uu/truncate" } +tsort = { optional = true, version = "0.0.22", package = "uu_tsort", path = "src/uu/tsort" } +tty = { optional = true, version = "0.0.22", package = "uu_tty", path = "src/uu/tty" } +uname = { optional = true, version = "0.0.22", package = "uu_uname", path = "src/uu/uname" } +unexpand = { optional = true, version = "0.0.22", package = "uu_unexpand", path = "src/uu/unexpand" } +uniq = { optional = true, version = "0.0.22", package = "uu_uniq", path = "src/uu/uniq" } +unlink = { optional = true, version = "0.0.22", package = "uu_unlink", path = "src/uu/unlink" } +uptime = { optional = true, version = "0.0.22", package = "uu_uptime", path = "src/uu/uptime" } +users = { optional = true, version = "0.0.22", package = "uu_users", path = "src/uu/users" } +vdir = { optional = true, version = "0.0.22", package = "uu_vdir", path = "src/uu/vdir" } +wc = { optional = true, version = "0.0.22", package = "uu_wc", path = "src/uu/wc" } +who = { optional = true, version = "0.0.22", package = "uu_who", path = "src/uu/who" } +whoami = { optional = true, version = "0.0.22", package = "uu_whoami", path = "src/uu/whoami" } +yes = { optional = true, version = "0.0.22", package = "uu_yes", path = "src/uu/yes" } # this breaks clippy linting with: "tests/by-util/test_factor_benches.rs: No such file or directory (os error 2)" # factor_benches = { optional = true, version = "0.0.0", package = "uu_factor_benches", path = "tests/benches/factor" } diff --git a/src/uu/arch/Cargo.toml b/src/uu/arch/Cargo.toml index cd12cb4d48..9686c3f0ac 100644 --- a/src/uu/arch/Cargo.toml +++ b/src/uu/arch/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_arch" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "arch ~ (uutils) display machine architecture" diff --git a/src/uu/base32/Cargo.toml b/src/uu/base32/Cargo.toml index 044b92d23f..f3bca4a197 100644 --- a/src/uu/base32/Cargo.toml +++ b/src/uu/base32/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_base32" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "base32 ~ (uutils) decode/encode input (base32-encoding)" diff --git a/src/uu/base64/Cargo.toml b/src/uu/base64/Cargo.toml index 3bc0451528..ddd669b89b 100644 --- a/src/uu/base64/Cargo.toml +++ b/src/uu/base64/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_base64" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "base64 ~ (uutils) decode/encode input (base64-encoding)" diff --git a/src/uu/basename/Cargo.toml b/src/uu/basename/Cargo.toml index 878a5d9e10..e74ad76163 100644 --- a/src/uu/basename/Cargo.toml +++ b/src/uu/basename/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_basename" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "basename ~ (uutils) display PATHNAME with leading directory components removed" diff --git a/src/uu/basenc/Cargo.toml b/src/uu/basenc/Cargo.toml index 92912e5dfb..7f41884407 100644 --- a/src/uu/basenc/Cargo.toml +++ b/src/uu/basenc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_basenc" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "basenc ~ (uutils) decode/encode input" diff --git a/src/uu/cat/Cargo.toml b/src/uu/cat/Cargo.toml index 166e1823b5..33488cd072 100644 --- a/src/uu/cat/Cargo.toml +++ b/src/uu/cat/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_cat" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "cat ~ (uutils) concatenate and display input" diff --git a/src/uu/chcon/Cargo.toml b/src/uu/chcon/Cargo.toml index c83c8abfc1..07bd73f4b4 100644 --- a/src/uu/chcon/Cargo.toml +++ b/src/uu/chcon/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_chcon" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "chcon ~ (uutils) change file security context" diff --git a/src/uu/chgrp/Cargo.toml b/src/uu/chgrp/Cargo.toml index 7f43e84662..9591e13651 100644 --- a/src/uu/chgrp/Cargo.toml +++ b/src/uu/chgrp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_chgrp" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "chgrp ~ (uutils) change the group ownership of FILE" diff --git a/src/uu/chmod/Cargo.toml b/src/uu/chmod/Cargo.toml index 2a9c73d9db..d10d0e08da 100644 --- a/src/uu/chmod/Cargo.toml +++ b/src/uu/chmod/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_chmod" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "chmod ~ (uutils) change mode of FILE" diff --git a/src/uu/chown/Cargo.toml b/src/uu/chown/Cargo.toml index 82b32875d6..bbd75db032 100644 --- a/src/uu/chown/Cargo.toml +++ b/src/uu/chown/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_chown" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "chown ~ (uutils) change the ownership of FILE" diff --git a/src/uu/chroot/Cargo.toml b/src/uu/chroot/Cargo.toml index 3c836add86..847b18ef5e 100644 --- a/src/uu/chroot/Cargo.toml +++ b/src/uu/chroot/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_chroot" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "chroot ~ (uutils) run COMMAND under a new root directory" diff --git a/src/uu/cksum/Cargo.toml b/src/uu/cksum/Cargo.toml index 49a881f706..e0d54edb9f 100644 --- a/src/uu/cksum/Cargo.toml +++ b/src/uu/cksum/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_cksum" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "cksum ~ (uutils) display CRC and size of input" diff --git a/src/uu/comm/Cargo.toml b/src/uu/comm/Cargo.toml index e4a1dac82f..07430f9d9f 100644 --- a/src/uu/comm/Cargo.toml +++ b/src/uu/comm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_comm" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "comm ~ (uutils) compare sorted inputs" diff --git a/src/uu/cp/Cargo.toml b/src/uu/cp/Cargo.toml index 177525ff5f..49ba75ca08 100644 --- a/src/uu/cp/Cargo.toml +++ b/src/uu/cp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_cp" -version = "0.0.21" +version = "0.0.22" authors = [ "Jordy Dickinson ", "Joshua S. Miller ", diff --git a/src/uu/csplit/Cargo.toml b/src/uu/csplit/Cargo.toml index ba051ff8ab..a30ebc4f67 100644 --- a/src/uu/csplit/Cargo.toml +++ b/src/uu/csplit/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_csplit" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "csplit ~ (uutils) Output pieces of FILE separated by PATTERN(s) to files 'xx00', 'xx01', ..., and output byte counts of each piece to standard output" diff --git a/src/uu/cut/Cargo.toml b/src/uu/cut/Cargo.toml index a55ce7d586..695777a72c 100644 --- a/src/uu/cut/Cargo.toml +++ b/src/uu/cut/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_cut" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "cut ~ (uutils) display byte/field columns of input lines" diff --git a/src/uu/date/Cargo.toml b/src/uu/date/Cargo.toml index 7590b0b746..cd860ce581 100644 --- a/src/uu/date/Cargo.toml +++ b/src/uu/date/Cargo.toml @@ -1,7 +1,7 @@ # spell-checker:ignore datetime [package] name = "uu_date" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "date ~ (uutils) display or set the current time" diff --git a/src/uu/dd/Cargo.toml b/src/uu/dd/Cargo.toml index 482128e1d0..f56e46eaa2 100644 --- a/src/uu/dd/Cargo.toml +++ b/src/uu/dd/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_dd" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "dd ~ (uutils) copy and convert files" diff --git a/src/uu/df/Cargo.toml b/src/uu/df/Cargo.toml index b547a35d5e..2aae7bd551 100644 --- a/src/uu/df/Cargo.toml +++ b/src/uu/df/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_df" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "df ~ (uutils) display file system information" diff --git a/src/uu/dir/Cargo.toml b/src/uu/dir/Cargo.toml index 2a709a8046..0bca7bb9d8 100644 --- a/src/uu/dir/Cargo.toml +++ b/src/uu/dir/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_dir" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "shortcut to ls -C -b" diff --git a/src/uu/dircolors/Cargo.toml b/src/uu/dircolors/Cargo.toml index 9248f5ea12..a4a101326a 100644 --- a/src/uu/dircolors/Cargo.toml +++ b/src/uu/dircolors/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_dircolors" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "dircolors ~ (uutils) display commands to set LS_COLORS" diff --git a/src/uu/dirname/Cargo.toml b/src/uu/dirname/Cargo.toml index 6de444499d..67806986cc 100644 --- a/src/uu/dirname/Cargo.toml +++ b/src/uu/dirname/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_dirname" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "dirname ~ (uutils) display parent directory of PATHNAME" diff --git a/src/uu/du/Cargo.toml b/src/uu/du/Cargo.toml index c87595db6c..158fa97864 100644 --- a/src/uu/du/Cargo.toml +++ b/src/uu/du/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_du" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "du ~ (uutils) display disk usage" diff --git a/src/uu/echo/Cargo.toml b/src/uu/echo/Cargo.toml index 5d27bae1b6..92d5d4924f 100644 --- a/src/uu/echo/Cargo.toml +++ b/src/uu/echo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_echo" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "echo ~ (uutils) display TEXT" diff --git a/src/uu/env/Cargo.toml b/src/uu/env/Cargo.toml index b2854edbf0..78b133733a 100644 --- a/src/uu/env/Cargo.toml +++ b/src/uu/env/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_env" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "env ~ (uutils) set each NAME to VALUE in the environment and run COMMAND" diff --git a/src/uu/expand/Cargo.toml b/src/uu/expand/Cargo.toml index 58647d8e9d..c329e61b6b 100644 --- a/src/uu/expand/Cargo.toml +++ b/src/uu/expand/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_expand" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "expand ~ (uutils) convert input tabs to spaces" diff --git a/src/uu/expr/Cargo.toml b/src/uu/expr/Cargo.toml index ae31c66901..3f0b5ca76a 100644 --- a/src/uu/expr/Cargo.toml +++ b/src/uu/expr/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_expr" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "expr ~ (uutils) display the value of EXPRESSION" diff --git a/src/uu/factor/Cargo.toml b/src/uu/factor/Cargo.toml index 57b5e9d54a..8ecee86c57 100644 --- a/src/uu/factor/Cargo.toml +++ b/src/uu/factor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_factor" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "factor ~ (uutils) display the prime factors of each NUMBER" diff --git a/src/uu/false/Cargo.toml b/src/uu/false/Cargo.toml index 80f3553c0e..3b1ca97f96 100644 --- a/src/uu/false/Cargo.toml +++ b/src/uu/false/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_false" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "false ~ (uutils) do nothing and fail" diff --git a/src/uu/fmt/Cargo.toml b/src/uu/fmt/Cargo.toml index 5b181937bc..c49f52741b 100644 --- a/src/uu/fmt/Cargo.toml +++ b/src/uu/fmt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_fmt" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "fmt ~ (uutils) reformat each paragraph of input" diff --git a/src/uu/fold/Cargo.toml b/src/uu/fold/Cargo.toml index ff2f2f6d56..af36f0466e 100644 --- a/src/uu/fold/Cargo.toml +++ b/src/uu/fold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_fold" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "fold ~ (uutils) wrap each line of input" diff --git a/src/uu/groups/Cargo.toml b/src/uu/groups/Cargo.toml index d503d3e83f..5f786acfd9 100644 --- a/src/uu/groups/Cargo.toml +++ b/src/uu/groups/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_groups" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "groups ~ (uutils) display group memberships for USERNAME" diff --git a/src/uu/hashsum/Cargo.toml b/src/uu/hashsum/Cargo.toml index 1b075fb487..23b60a7014 100644 --- a/src/uu/hashsum/Cargo.toml +++ b/src/uu/hashsum/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_hashsum" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "hashsum ~ (uutils) display or check input digests" diff --git a/src/uu/head/Cargo.toml b/src/uu/head/Cargo.toml index bdbe45dc18..7c73f3941a 100644 --- a/src/uu/head/Cargo.toml +++ b/src/uu/head/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_head" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "head ~ (uutils) display the first lines of input" diff --git a/src/uu/hostid/Cargo.toml b/src/uu/hostid/Cargo.toml index f34fee820a..2e6dcc3395 100644 --- a/src/uu/hostid/Cargo.toml +++ b/src/uu/hostid/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_hostid" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "hostid ~ (uutils) display the numeric identifier of the current host" diff --git a/src/uu/hostname/Cargo.toml b/src/uu/hostname/Cargo.toml index 8e36e672a8..49cb14bf2b 100644 --- a/src/uu/hostname/Cargo.toml +++ b/src/uu/hostname/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_hostname" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "hostname ~ (uutils) display or set the host name of the current host" diff --git a/src/uu/id/Cargo.toml b/src/uu/id/Cargo.toml index 77cda20be8..bf1eaf44ca 100644 --- a/src/uu/id/Cargo.toml +++ b/src/uu/id/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_id" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "id ~ (uutils) display user and group information for USER" diff --git a/src/uu/install/Cargo.toml b/src/uu/install/Cargo.toml index e66cbeb72c..b5353eace6 100644 --- a/src/uu/install/Cargo.toml +++ b/src/uu/install/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_install" -version = "0.0.21" +version = "0.0.22" authors = ["Ben Eills ", "uutils developers"] license = "MIT" description = "install ~ (uutils) copy files from SOURCE to DESTINATION (with specified attributes)" diff --git a/src/uu/join/Cargo.toml b/src/uu/join/Cargo.toml index 971f8e4552..c52f66de44 100644 --- a/src/uu/join/Cargo.toml +++ b/src/uu/join/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_join" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "join ~ (uutils) merge lines from inputs with matching join fields" diff --git a/src/uu/kill/Cargo.toml b/src/uu/kill/Cargo.toml index a675f00eda..a606c81e74 100644 --- a/src/uu/kill/Cargo.toml +++ b/src/uu/kill/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_kill" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "kill ~ (uutils) send a signal to a process" diff --git a/src/uu/link/Cargo.toml b/src/uu/link/Cargo.toml index 2406476cab..c79ca60419 100644 --- a/src/uu/link/Cargo.toml +++ b/src/uu/link/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_link" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "link ~ (uutils) create a hard (file system) link to FILE" diff --git a/src/uu/ln/Cargo.toml b/src/uu/ln/Cargo.toml index 6488963cce..e9f0e6eb74 100644 --- a/src/uu/ln/Cargo.toml +++ b/src/uu/ln/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_ln" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "ln ~ (uutils) create a (file system) link to TARGET" diff --git a/src/uu/logname/Cargo.toml b/src/uu/logname/Cargo.toml index 29116455b4..41cbcf73b0 100644 --- a/src/uu/logname/Cargo.toml +++ b/src/uu/logname/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_logname" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "logname ~ (uutils) display the login name of the current user" diff --git a/src/uu/ls/Cargo.toml b/src/uu/ls/Cargo.toml index 4394865cab..64d1cf1364 100644 --- a/src/uu/ls/Cargo.toml +++ b/src/uu/ls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_ls" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "ls ~ (uutils) display directory contents" diff --git a/src/uu/mkdir/Cargo.toml b/src/uu/mkdir/Cargo.toml index c1a6ce2a86..c0d60dc9d5 100644 --- a/src/uu/mkdir/Cargo.toml +++ b/src/uu/mkdir/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_mkdir" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "mkdir ~ (uutils) create DIRECTORY" diff --git a/src/uu/mkfifo/Cargo.toml b/src/uu/mkfifo/Cargo.toml index 0c28f52de7..285fc2b342 100644 --- a/src/uu/mkfifo/Cargo.toml +++ b/src/uu/mkfifo/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_mkfifo" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "mkfifo ~ (uutils) create FIFOs (named pipes)" diff --git a/src/uu/mknod/Cargo.toml b/src/uu/mknod/Cargo.toml index a230bec74c..2e66017147 100644 --- a/src/uu/mknod/Cargo.toml +++ b/src/uu/mknod/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_mknod" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "mknod ~ (uutils) create special file NAME of TYPE" diff --git a/src/uu/mktemp/Cargo.toml b/src/uu/mktemp/Cargo.toml index 5dbc8492a0..8d8a885b15 100644 --- a/src/uu/mktemp/Cargo.toml +++ b/src/uu/mktemp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_mktemp" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "mktemp ~ (uutils) create and display a temporary file or directory from TEMPLATE" diff --git a/src/uu/more/Cargo.toml b/src/uu/more/Cargo.toml index bc0f252179..5614a0495a 100644 --- a/src/uu/more/Cargo.toml +++ b/src/uu/more/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_more" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "more ~ (uutils) input perusal filter" diff --git a/src/uu/mv/Cargo.toml b/src/uu/mv/Cargo.toml index b7fcf2d109..0be31ad725 100644 --- a/src/uu/mv/Cargo.toml +++ b/src/uu/mv/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_mv" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "mv ~ (uutils) move (rename) SOURCE to DESTINATION" diff --git a/src/uu/nice/Cargo.toml b/src/uu/nice/Cargo.toml index 65e1520d1b..465b7b7659 100644 --- a/src/uu/nice/Cargo.toml +++ b/src/uu/nice/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_nice" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "nice ~ (uutils) run PROGRAM with modified scheduling priority" diff --git a/src/uu/nl/Cargo.toml b/src/uu/nl/Cargo.toml index db2bfacbd7..003e179138 100644 --- a/src/uu/nl/Cargo.toml +++ b/src/uu/nl/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_nl" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "nl ~ (uutils) display input with added line numbers" diff --git a/src/uu/nohup/Cargo.toml b/src/uu/nohup/Cargo.toml index 9fbf125bf5..41c98982af 100644 --- a/src/uu/nohup/Cargo.toml +++ b/src/uu/nohup/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_nohup" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "nohup ~ (uutils) run COMMAND, ignoring hangup signals" diff --git a/src/uu/nproc/Cargo.toml b/src/uu/nproc/Cargo.toml index b6052de2ed..0acc0e9511 100644 --- a/src/uu/nproc/Cargo.toml +++ b/src/uu/nproc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_nproc" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "nproc ~ (uutils) display the number of processing units available" diff --git a/src/uu/numfmt/Cargo.toml b/src/uu/numfmt/Cargo.toml index 8fbf886a24..cf2f086460 100644 --- a/src/uu/numfmt/Cargo.toml +++ b/src/uu/numfmt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_numfmt" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "numfmt ~ (uutils) reformat NUMBER" diff --git a/src/uu/od/Cargo.toml b/src/uu/od/Cargo.toml index d369456f32..b7799e0520 100644 --- a/src/uu/od/Cargo.toml +++ b/src/uu/od/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_od" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "od ~ (uutils) display formatted representation of input" diff --git a/src/uu/paste/Cargo.toml b/src/uu/paste/Cargo.toml index d93d4cbb6b..dd030478c0 100644 --- a/src/uu/paste/Cargo.toml +++ b/src/uu/paste/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_paste" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "paste ~ (uutils) merge lines from inputs" diff --git a/src/uu/pathchk/Cargo.toml b/src/uu/pathchk/Cargo.toml index f62c027c4f..708ae2afba 100644 --- a/src/uu/pathchk/Cargo.toml +++ b/src/uu/pathchk/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_pathchk" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "pathchk ~ (uutils) diagnose invalid or non-portable PATHNAME" diff --git a/src/uu/pinky/Cargo.toml b/src/uu/pinky/Cargo.toml index f6d291e26e..c4739e7fcb 100644 --- a/src/uu/pinky/Cargo.toml +++ b/src/uu/pinky/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_pinky" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "pinky ~ (uutils) display user information" diff --git a/src/uu/pr/Cargo.toml b/src/uu/pr/Cargo.toml index 4453d1cbaa..9a12e10f5b 100644 --- a/src/uu/pr/Cargo.toml +++ b/src/uu/pr/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_pr" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "pr ~ (uutils) convert text files for printing" diff --git a/src/uu/printenv/Cargo.toml b/src/uu/printenv/Cargo.toml index 7296581101..64435127f6 100644 --- a/src/uu/printenv/Cargo.toml +++ b/src/uu/printenv/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_printenv" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "printenv ~ (uutils) display value of environment VAR" diff --git a/src/uu/printf/Cargo.toml b/src/uu/printf/Cargo.toml index d55d3732a3..a4fd773da2 100644 --- a/src/uu/printf/Cargo.toml +++ b/src/uu/printf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_printf" -version = "0.0.21" +version = "0.0.22" authors = ["Nathan Ross", "uutils developers"] license = "MIT" description = "printf ~ (uutils) FORMAT and display ARGUMENTS" diff --git a/src/uu/ptx/Cargo.toml b/src/uu/ptx/Cargo.toml index 96d635caff..ea241600bc 100644 --- a/src/uu/ptx/Cargo.toml +++ b/src/uu/ptx/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_ptx" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "ptx ~ (uutils) display a permuted index of input" diff --git a/src/uu/pwd/Cargo.toml b/src/uu/pwd/Cargo.toml index 1567a935f9..5f15245b5d 100644 --- a/src/uu/pwd/Cargo.toml +++ b/src/uu/pwd/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_pwd" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "pwd ~ (uutils) display current working directory" diff --git a/src/uu/readlink/Cargo.toml b/src/uu/readlink/Cargo.toml index 309d407942..a696abdfaa 100644 --- a/src/uu/readlink/Cargo.toml +++ b/src/uu/readlink/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_readlink" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "readlink ~ (uutils) display resolved path of PATHNAME" diff --git a/src/uu/realpath/Cargo.toml b/src/uu/realpath/Cargo.toml index e458bf89d1..6d20727532 100644 --- a/src/uu/realpath/Cargo.toml +++ b/src/uu/realpath/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_realpath" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "realpath ~ (uutils) display resolved absolute path of PATHNAME" diff --git a/src/uu/rm/Cargo.toml b/src/uu/rm/Cargo.toml index 87fccbfa87..a1b3999d4d 100644 --- a/src/uu/rm/Cargo.toml +++ b/src/uu/rm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_rm" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "rm ~ (uutils) remove PATHNAME" diff --git a/src/uu/rmdir/Cargo.toml b/src/uu/rmdir/Cargo.toml index 41d2f7432d..8288309f25 100644 --- a/src/uu/rmdir/Cargo.toml +++ b/src/uu/rmdir/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_rmdir" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "rmdir ~ (uutils) remove empty DIRECTORY" diff --git a/src/uu/runcon/Cargo.toml b/src/uu/runcon/Cargo.toml index ac4ec54d5f..04d3aae713 100644 --- a/src/uu/runcon/Cargo.toml +++ b/src/uu/runcon/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_runcon" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "runcon ~ (uutils) run command with specified security context" diff --git a/src/uu/seq/Cargo.toml b/src/uu/seq/Cargo.toml index f25d995a2d..b8a5c084cd 100644 --- a/src/uu/seq/Cargo.toml +++ b/src/uu/seq/Cargo.toml @@ -1,7 +1,7 @@ # spell-checker:ignore bigdecimal [package] name = "uu_seq" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "seq ~ (uutils) display a sequence of numbers" diff --git a/src/uu/shred/Cargo.toml b/src/uu/shred/Cargo.toml index 70045eaf07..0e7ad2ad31 100644 --- a/src/uu/shred/Cargo.toml +++ b/src/uu/shred/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_shred" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "shred ~ (uutils) hide former FILE contents with repeated overwrites" diff --git a/src/uu/shuf/Cargo.toml b/src/uu/shuf/Cargo.toml index 2f0466b86f..6a86c6d985 100644 --- a/src/uu/shuf/Cargo.toml +++ b/src/uu/shuf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_shuf" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "shuf ~ (uutils) display random permutations of input lines" diff --git a/src/uu/sleep/Cargo.toml b/src/uu/sleep/Cargo.toml index 454f2297ed..6ca686c78c 100644 --- a/src/uu/sleep/Cargo.toml +++ b/src/uu/sleep/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_sleep" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "sleep ~ (uutils) pause for DURATION" diff --git a/src/uu/sort/Cargo.toml b/src/uu/sort/Cargo.toml index 981e716414..0cbafc5cfa 100644 --- a/src/uu/sort/Cargo.toml +++ b/src/uu/sort/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_sort" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "sort ~ (uutils) sort input lines" diff --git a/src/uu/split/Cargo.toml b/src/uu/split/Cargo.toml index fb53914e29..c5a3484732 100644 --- a/src/uu/split/Cargo.toml +++ b/src/uu/split/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_split" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "split ~ (uutils) split input into output files" diff --git a/src/uu/stat/Cargo.toml b/src/uu/stat/Cargo.toml index f258aca113..2974562f35 100644 --- a/src/uu/stat/Cargo.toml +++ b/src/uu/stat/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_stat" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "stat ~ (uutils) display FILE status" diff --git a/src/uu/stdbuf/Cargo.toml b/src/uu/stdbuf/Cargo.toml index f610149071..8168733aff 100644 --- a/src/uu/stdbuf/Cargo.toml +++ b/src/uu/stdbuf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_stdbuf" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "stdbuf ~ (uutils) run COMMAND with modified standard stream buffering" @@ -20,7 +20,7 @@ tempfile = { workspace = true } uucore = { workspace = true } [build-dependencies] -libstdbuf = { version = "0.0.21", package = "uu_stdbuf_libstdbuf", path = "src/libstdbuf" } +libstdbuf = { version = "0.0.22", package = "uu_stdbuf_libstdbuf", path = "src/libstdbuf" } [[bin]] name = "stdbuf" diff --git a/src/uu/stdbuf/src/libstdbuf/Cargo.toml b/src/uu/stdbuf/src/libstdbuf/Cargo.toml index 8061c61a64..5fdfa27e03 100644 --- a/src/uu/stdbuf/src/libstdbuf/Cargo.toml +++ b/src/uu/stdbuf/src/libstdbuf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_stdbuf_libstdbuf" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "stdbuf/libstdbuf ~ (uutils); dynamic library required for stdbuf" diff --git a/src/uu/stty/Cargo.toml b/src/uu/stty/Cargo.toml index eb86ae6810..965de5cd88 100644 --- a/src/uu/stty/Cargo.toml +++ b/src/uu/stty/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_stty" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "stty ~ (uutils) print or change terminal characteristics" diff --git a/src/uu/sum/Cargo.toml b/src/uu/sum/Cargo.toml index aa722c6943..58fa7a08d4 100644 --- a/src/uu/sum/Cargo.toml +++ b/src/uu/sum/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_sum" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "sum ~ (uutils) display checksum and block counts for input" diff --git a/src/uu/sync/Cargo.toml b/src/uu/sync/Cargo.toml index b74e076e50..2367561f87 100644 --- a/src/uu/sync/Cargo.toml +++ b/src/uu/sync/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_sync" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "sync ~ (uutils) synchronize cache writes to storage" diff --git a/src/uu/tac/Cargo.toml b/src/uu/tac/Cargo.toml index 385ef37c89..1716a6d036 100644 --- a/src/uu/tac/Cargo.toml +++ b/src/uu/tac/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "uu_tac" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "tac ~ (uutils) concatenate and display input lines in reverse order" diff --git a/src/uu/tail/Cargo.toml b/src/uu/tail/Cargo.toml index 5ff532e60f..66775c8d9d 100644 --- a/src/uu/tail/Cargo.toml +++ b/src/uu/tail/Cargo.toml @@ -1,7 +1,7 @@ # spell-checker:ignore (libs) kqueue fundu [package] name = "uu_tail" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "tail ~ (uutils) display the last lines of input" diff --git a/src/uu/tee/Cargo.toml b/src/uu/tee/Cargo.toml index 597299fc7d..787c0cb326 100644 --- a/src/uu/tee/Cargo.toml +++ b/src/uu/tee/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_tee" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "tee ~ (uutils) display input and copy to FILE" diff --git a/src/uu/test/Cargo.toml b/src/uu/test/Cargo.toml index fc70677a6c..696fa36621 100644 --- a/src/uu/test/Cargo.toml +++ b/src/uu/test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_test" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "test ~ (uutils) evaluate comparison and file type expressions" diff --git a/src/uu/timeout/Cargo.toml b/src/uu/timeout/Cargo.toml index 949ac9da5f..b6cb700a47 100644 --- a/src/uu/timeout/Cargo.toml +++ b/src/uu/timeout/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_timeout" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "timeout ~ (uutils) run COMMAND with a DURATION time limit" diff --git a/src/uu/touch/Cargo.toml b/src/uu/touch/Cargo.toml index 54682e1ddf..b44e8cf69f 100644 --- a/src/uu/touch/Cargo.toml +++ b/src/uu/touch/Cargo.toml @@ -1,7 +1,7 @@ # spell-checker:ignore datetime [package] name = "uu_touch" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "touch ~ (uutils) change FILE timestamps" diff --git a/src/uu/tr/Cargo.toml b/src/uu/tr/Cargo.toml index 065fdab527..c7e7bd6064 100644 --- a/src/uu/tr/Cargo.toml +++ b/src/uu/tr/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_tr" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "tr ~ (uutils) translate characters within input and display" diff --git a/src/uu/true/Cargo.toml b/src/uu/true/Cargo.toml index 432dfa54e9..ec6c5d2f90 100644 --- a/src/uu/true/Cargo.toml +++ b/src/uu/true/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_true" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "true ~ (uutils) do nothing and succeed" diff --git a/src/uu/truncate/Cargo.toml b/src/uu/truncate/Cargo.toml index fbabe1fcd4..a9cc179a67 100644 --- a/src/uu/truncate/Cargo.toml +++ b/src/uu/truncate/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_truncate" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "truncate ~ (uutils) truncate (or extend) FILE to SIZE" diff --git a/src/uu/tsort/Cargo.toml b/src/uu/tsort/Cargo.toml index 2f276f98ee..f72aeeda08 100644 --- a/src/uu/tsort/Cargo.toml +++ b/src/uu/tsort/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_tsort" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "tsort ~ (uutils) topologically sort input (partially ordered) pairs" diff --git a/src/uu/tty/Cargo.toml b/src/uu/tty/Cargo.toml index 917d04c106..66d4b42c79 100644 --- a/src/uu/tty/Cargo.toml +++ b/src/uu/tty/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_tty" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "tty ~ (uutils) display the name of the terminal connected to standard input" diff --git a/src/uu/uname/Cargo.toml b/src/uu/uname/Cargo.toml index ccb3651ec6..10363b63cb 100644 --- a/src/uu/uname/Cargo.toml +++ b/src/uu/uname/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_uname" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "uname ~ (uutils) display system information" diff --git a/src/uu/unexpand/Cargo.toml b/src/uu/unexpand/Cargo.toml index 6a12d48ab6..bab5b4e915 100644 --- a/src/uu/unexpand/Cargo.toml +++ b/src/uu/unexpand/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_unexpand" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "unexpand ~ (uutils) convert input spaces to tabs" diff --git a/src/uu/uniq/Cargo.toml b/src/uu/uniq/Cargo.toml index 0afcffc118..2fb0552ce7 100644 --- a/src/uu/uniq/Cargo.toml +++ b/src/uu/uniq/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_uniq" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "uniq ~ (uutils) filter identical adjacent lines from input" diff --git a/src/uu/unlink/Cargo.toml b/src/uu/unlink/Cargo.toml index ce86b81d8d..aae56bf0bf 100644 --- a/src/uu/unlink/Cargo.toml +++ b/src/uu/unlink/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_unlink" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "unlink ~ (uutils) remove a (file system) link to FILE" diff --git a/src/uu/uptime/Cargo.toml b/src/uu/uptime/Cargo.toml index 7bef7cc051..f5fa083f9f 100644 --- a/src/uu/uptime/Cargo.toml +++ b/src/uu/uptime/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_uptime" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "uptime ~ (uutils) display dynamic system information" diff --git a/src/uu/users/Cargo.toml b/src/uu/users/Cargo.toml index 4701c694f4..d894ff4ba6 100644 --- a/src/uu/users/Cargo.toml +++ b/src/uu/users/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_users" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "users ~ (uutils) display names of currently logged-in users" diff --git a/src/uu/vdir/Cargo.toml b/src/uu/vdir/Cargo.toml index 99bcf383b9..b63f8c9eaf 100644 --- a/src/uu/vdir/Cargo.toml +++ b/src/uu/vdir/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_vdir" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "shortcut to ls -l -b" diff --git a/src/uu/wc/Cargo.toml b/src/uu/wc/Cargo.toml index 5712fbd833..6a233c1ade 100644 --- a/src/uu/wc/Cargo.toml +++ b/src/uu/wc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_wc" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "wc ~ (uutils) display newline, word, and byte counts for input" diff --git a/src/uu/who/Cargo.toml b/src/uu/who/Cargo.toml index b8b90b2ef3..fdfc058975 100644 --- a/src/uu/who/Cargo.toml +++ b/src/uu/who/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_who" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "who ~ (uutils) display information about currently logged-in users" diff --git a/src/uu/whoami/Cargo.toml b/src/uu/whoami/Cargo.toml index 331755a965..59d011209f 100644 --- a/src/uu/whoami/Cargo.toml +++ b/src/uu/whoami/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_whoami" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "whoami ~ (uutils) display user name of current effective user ID" diff --git a/src/uu/yes/Cargo.toml b/src/uu/yes/Cargo.toml index eff0915511..c36c2b1897 100644 --- a/src/uu/yes/Cargo.toml +++ b/src/uu/yes/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "uu_yes" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "yes ~ (uutils) repeatedly display a line with STRING (or 'y')" diff --git a/src/uucore/Cargo.toml b/src/uucore/Cargo.toml index 5e555da4da..8ce252dc56 100644 --- a/src/uucore/Cargo.toml +++ b/src/uucore/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "uucore" -version = "0.0.21" +version = "0.0.22" authors = ["uutils developers"] license = "MIT" description = "uutils ~ 'core' uutils code library (cross-platform)" diff --git a/src/uucore_procs/Cargo.toml b/src/uucore_procs/Cargo.toml index 1ad4023f9b..55d8809613 100644 --- a/src/uucore_procs/Cargo.toml +++ b/src/uucore_procs/Cargo.toml @@ -1,7 +1,7 @@ # spell-checker:ignore uuhelp [package] name = "uucore_procs" -version = "0.0.21" +version = "0.0.22" authors = ["Roy Ivy III "] license = "MIT" description = "uutils ~ 'uucore' proc-macros" @@ -19,4 +19,4 @@ proc-macro = true [dependencies] proc-macro2 = "1.0" quote = "1.0" -uuhelp_parser = { path = "../uuhelp_parser", version = "0.0.21" } +uuhelp_parser = { path = "../uuhelp_parser", version = "0.0.22" } diff --git a/src/uuhelp_parser/Cargo.toml b/src/uuhelp_parser/Cargo.toml index fdff271b05..007f1ebb2c 100644 --- a/src/uuhelp_parser/Cargo.toml +++ b/src/uuhelp_parser/Cargo.toml @@ -1,7 +1,7 @@ # spell-checker:ignore uuhelp [package] name = "uuhelp_parser" -version = "0.0.21" +version = "0.0.22" edition = "2021" license = "MIT" description = "A collection of functions to parse the markdown code of help files" diff --git a/util/update-version.sh b/util/update-version.sh index 6738f19b66..59bdb4d751 100755 --- a/util/update-version.sh +++ b/util/update-version.sh @@ -14,8 +14,8 @@ # 7) Run util/publish.sh --do-it # 8) In some cases, you might have to fix dependencies and run import -FROM="0.0.20" -TO="0.0.21" +FROM="0.0.21" +TO="0.0.22" PROGS=$(ls -1d src/uu/*/Cargo.toml src/uu/stdbuf/src/libstdbuf/Cargo.toml src/uucore/Cargo.toml Cargo.toml) From fcd0817b3b4a2fd6e831c23aef400c7c018f84a3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 15 Oct 2023 14:24:05 +0200 Subject: [PATCH 23/32] update of the release doc --- util/update-version.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/util/update-version.sh b/util/update-version.sh index 6738f19b66..86e7f329ba 100755 --- a/util/update-version.sh +++ b/util/update-version.sh @@ -9,10 +9,13 @@ # 2) run it: sh util/update-version.sh # 3) Do a spot check with "git diff" # 4) cargo test --release --features unix -# 5) git commit -m "New release" +# 5) git commit -m "New release" (make sure it includes Cargo.lock) # 6) Run util/publish.sh in dry mode (it will fail as packages needs more recent version of uucore) # 7) Run util/publish.sh --do-it # 8) In some cases, you might have to fix dependencies and run import +# 9) Tag the release - "git tag 0.0.X && git push --tags" +# 10) Create the release on github https://github.com/uutils/coreutils/releases/new +# 11) Make sure we have good release notes FROM="0.0.20" TO="0.0.21" From c892c9346f945a8572a6b24bd7cb80625ec8a23f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 15 Oct 2023 17:59:54 +0000 Subject: [PATCH 24/32] fix(deps): update rust crate dns-lookup to 2.0.4 --- Cargo.lock | 4 ++-- src/uucore/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a54656d7c4..4481d08d32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -743,9 +743,9 @@ dependencies = [ [[package]] name = "dns-lookup" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d0fa3cd8dc96ada974e126a940d37d4079bbbe6a24aca15b1113c2f362441c5" +checksum = "e5766087c2235fec47fafa4cfecc81e494ee679d0fd4a59887ea0919bfb0e4fc" dependencies = [ "cfg-if", "libc", diff --git a/src/uucore/Cargo.toml b/src/uucore/Cargo.toml index 8ce252dc56..fb0b20338d 100644 --- a/src/uucore/Cargo.toml +++ b/src/uucore/Cargo.toml @@ -20,7 +20,7 @@ path = "src/lib/lib.rs" [dependencies] clap = { workspace = true } uucore_procs = { workspace = true } -dns-lookup = { version = "2.0.3", optional = true } +dns-lookup = { version = "2.0.4", optional = true } dunce = { version = "1.0.4", optional = true } wild = "2.2" glob = { workspace = true } From 3a780453a9cc23b928baeaac3dc9588f067a6d5a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 6 Oct 2023 21:25:24 +0200 Subject: [PATCH 25/32] join: remove a clippy::cognitive_complexity by moving some content into functions --- src/uu/join/src/join.rs | 102 +++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 37 deletions(-) diff --git a/src/uu/join/src/join.rs b/src/uu/join/src/join.rs index 71720f2cca..7f6d1038f1 100644 --- a/src/uu/join/src/join.rs +++ b/src/uu/join/src/join.rs @@ -591,20 +591,38 @@ impl<'a> State<'a> { } } -#[uucore::main] -#[allow(clippy::cognitive_complexity)] -pub fn uumain(args: impl uucore::Args) -> UResult<()> { - let matches = uu_app().try_get_matches_from(args)?; - - let keys = parse_field_number_option(matches.get_one::("j").map(|s| s.as_str()))?; - let key1 = parse_field_number_option(matches.get_one::("1").map(|s| s.as_str()))?; - let key2 = parse_field_number_option(matches.get_one::("2").map(|s| s.as_str()))?; +fn parse_separator(value_os: &OsString) -> UResult { + #[cfg(unix)] + let value = value_os.as_bytes(); + #[cfg(not(unix))] + let value = match value_os.to_str() { + Some(value) => value.as_bytes(), + None => { + return Err(USimpleError::new( + 1, + "unprintable field separators are only supported on unix-like platforms", + )); + } + }; + match value.len() { + 0 => Ok(Sep::Line), + 1 => Ok(Sep::Char(value[0])), + 2 if value[0] == b'\\' && value[1] == b'0' => Ok(Sep::Char(0)), + _ => Err(USimpleError::new( + 1, + format!("multi-character tab {}", value_os.to_string_lossy()), + )), + } +} - let mut settings = Settings::default(); +fn parse_print_settings(matches: &clap::ArgMatches) -> UResult<(bool, bool, bool)> { + let mut print_joined = true; + let mut print_unpaired1 = false; + let mut print_unpaired2 = false; let v_values = matches.get_many::("v"); if v_values.is_some() { - settings.print_joined = false; + print_joined = false; } let unpaired = v_values @@ -612,41 +630,42 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { .chain(matches.get_many("a").unwrap_or_default()); for file_num in unpaired { match parse_file_number(file_num)? { - FileNum::File1 => settings.print_unpaired1 = true, - FileNum::File2 => settings.print_unpaired2 = true, + FileNum::File1 => print_unpaired1 = true, + FileNum::File2 => print_unpaired2 = true, } } + Ok((print_joined, print_unpaired1, print_unpaired2)) +} + +fn get_and_parse_field_number(matches: &clap::ArgMatches, key: &str) -> UResult> { + let value = matches.get_one::(key).map(|s| s.as_str()); + parse_field_number_option(value) +} + +/// Parses the command-line arguments and constructs a `Settings` struct. +/// +/// This function takes the matches from the command-line arguments, processes them, +/// and returns a `Settings` struct that encapsulates the configuration for the program. +fn parse_settings(matches: &clap::ArgMatches) -> UResult { + let keys = get_and_parse_field_number(matches, "j")?; + let key1 = get_and_parse_field_number(matches, "1")?; + let key2 = get_and_parse_field_number(matches, "2")?; + + let (print_joined, print_unpaired1, print_unpaired2) = parse_print_settings(matches)?; + + let mut settings = Settings::default(); + + settings.print_joined = print_joined; + settings.print_unpaired1 = print_unpaired1; + settings.print_unpaired2 = print_unpaired2; + settings.ignore_case = matches.get_flag("i"); settings.key1 = get_field_number(keys, key1)?; settings.key2 = get_field_number(keys, key2)?; - if let Some(value_os) = matches.get_one::("t") { - #[cfg(unix)] - let value = value_os.as_bytes(); - #[cfg(not(unix))] - let value = match value_os.to_str() { - Some(value) => value.as_bytes(), - None => { - return Err(USimpleError::new( - 1, - "unprintable field separators are only supported on unix-like platforms", - )) - } - }; - settings.separator = match value.len() { - 0 => Sep::Line, - 1 => Sep::Char(value[0]), - 2 if value[0] == b'\\' && value[1] == b'0' => Sep::Char(0), - _ => { - return Err(USimpleError::new( - 1, - format!("multi-character tab {}", value_os.to_string_lossy()), - )) - } - }; + settings.separator = parse_separator(value_os)?; } - if let Some(format) = matches.get_one::("o") { if format == "auto" { settings.autoformat = true; @@ -677,6 +696,15 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { settings.line_ending = LineEnding::from_zero_flag(matches.get_flag("z")); + Ok(settings) +} + +#[uucore::main] +pub fn uumain(args: impl uucore::Args) -> UResult<()> { + let matches = uu_app().try_get_matches_from(args)?; + + let settings = parse_settings(&matches)?; + let file1 = matches.get_one::("file1").unwrap(); let file2 = matches.get_one::("file2").unwrap(); From 21aca7abd750b283eebe8928d35e407402f86fad Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Mon, 16 Oct 2023 09:48:20 +0200 Subject: [PATCH 26/32] doc: add a missing "a" --- DEVELOPMENT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 9cb81a88ce..67b201e9cc 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -6,7 +6,7 @@ For contributing rules and best practices please refer to [CONTRIBUTING.md](CONT ## Before you start -For this guide we assume that you already have GitHub account and have `git` and your favorite code editor or IDE installed and configured. +For this guide we assume that you already have a GitHub account and have `git` and your favorite code editor or IDE installed and configured. Before you start working on coreutils, please follow these steps: 1. Fork the [coreutils repository](https://github.com/uutils/coreutils) to your GitHub account. From f8436728dc1a5df064c21bba8cbe422bd74d2e06 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 16 Oct 2023 10:47:38 +0200 Subject: [PATCH 27/32] add field_reassign_with_default ignore Co-authored-by: Daniel Hofstetter --- src/uu/join/src/join.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/uu/join/src/join.rs b/src/uu/join/src/join.rs index 7f6d1038f1..a48ba3657b 100644 --- a/src/uu/join/src/join.rs +++ b/src/uu/join/src/join.rs @@ -647,6 +647,7 @@ fn get_and_parse_field_number(matches: &clap::ArgMatches, key: &str) -> UResult< /// /// This function takes the matches from the command-line arguments, processes them, /// and returns a `Settings` struct that encapsulates the configuration for the program. +#[allow(clippy::field_reassign_with_default)] fn parse_settings(matches: &clap::ArgMatches) -> UResult { let keys = get_and_parse_field_number(matches, "j")?; let key1 = get_and_parse_field_number(matches, "1")?; From 3288c64b00703ac39accb4abec94a7bf45ef978d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Oct 2023 16:33:17 +0000 Subject: [PATCH 28/32] chore(deps): update rust crate regex to 1.10.2 --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4481d08d32..dfa22ad274 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1728,9 +1728,9 @@ checksum = "f1bfbf25d7eb88ddcbb1ec3d755d0634da8f7657b2cb8b74089121409ab8228f" [[package]] name = "regex" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaac441002f822bc9705a681810a4dd2963094b9ca0ddc41cb963a4c189189ea" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -1740,9 +1740,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5011c7e263a695dc8ca064cddb722af1be54e517a280b12a5356f98366899e5d" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", diff --git a/Cargo.toml b/Cargo.toml index 39232b50d6..6b412488cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -309,7 +309,7 @@ rand = { version = "0.8", features = ["small_rng"] } rand_core = "0.6" rayon = "1.8" redox_syscall = "0.4" -regex = "1.10.1" +regex = "1.10.2" rstest = "0.18.2" rust-ini = "0.19.0" same-file = "1.0.6" From 7421c81a22cebd5ea80d2614766c195431b2089e Mon Sep 17 00:00:00 2001 From: Zhuoxun Yang Date: Tue, 17 Oct 2023 22:21:44 +0800 Subject: [PATCH 29/32] tests/expr: sort test cases --- tests/by-util/test_expr.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/tests/by-util/test_expr.rs b/tests/by-util/test_expr.rs index d4cca43a28..840e1f3257 100644 --- a/tests/by-util/test_expr.rs +++ b/tests/by-util/test_expr.rs @@ -152,14 +152,20 @@ fn test_and() { .succeeds() .stdout_only("foo\n"); - new_ucmd!().args(&["", "&", "1"]).run().stdout_is("0\n"); - - new_ucmd!().args(&["14", "&", "1"]).run().stdout_is("14\n"); + new_ucmd!() + .args(&["14", "&", "1"]) + .succeeds() + .stdout_only("14\n"); new_ucmd!() .args(&["-14", "&", "1"]) - .run() - .stdout_is("-14\n"); + .succeeds() + .stdout_only("-14\n"); + + new_ucmd!() + .args(&["-1", "&", "10", "/", "5"]) + .succeeds() + .stdout_only("-1\n"); new_ucmd!() .args(&["0", "&", "a", "/", "5"]) @@ -171,10 +177,7 @@ fn test_and() { .run() .stdout_only("0\n"); - new_ucmd!() - .args(&["-1", "&", "10", "/", "5"]) - .succeeds() - .stdout_only("-1\n"); + new_ucmd!().args(&["", "&", "1"]).run().stdout_only("0\n"); } #[test] From 04ab5b010860e290fa0b23b7a4cca47ce934e996 Mon Sep 17 00:00:00 2001 From: Zhuoxun Yang Date: Tue, 17 Oct 2023 22:26:19 +0800 Subject: [PATCH 30/32] tests/expr: add tests for "" --- tests/by-util/test_expr.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/by-util/test_expr.rs b/tests/by-util/test_expr.rs index 840e1f3257..28cfcf0ec9 100644 --- a/tests/by-util/test_expr.rs +++ b/tests/by-util/test_expr.rs @@ -143,6 +143,14 @@ fn test_or() { .args(&["12", "|", "9a", "+", "1"]) .succeeds() .stdout_only("12\n"); + + new_ucmd!().args(&["", "|", ""]).run().stdout_only("0\n"); + + new_ucmd!().args(&["", "|", "0"]).run().stdout_only("0\n"); + + new_ucmd!().args(&["", "|", "00"]).run().stdout_only("0\n"); + + new_ucmd!().args(&["", "|", "-0"]).run().stdout_only("0\n"); } #[test] @@ -178,6 +186,8 @@ fn test_and() { .stdout_only("0\n"); new_ucmd!().args(&["", "&", "1"]).run().stdout_only("0\n"); + + new_ucmd!().args(&["", "&", ""]).run().stdout_only("0\n"); } #[test] From 8a6722491746ff7ec805ea058a30de1236836754 Mon Sep 17 00:00:00 2001 From: Zhuoxun Yang Date: Tue, 17 Oct 2023 22:27:10 +0800 Subject: [PATCH 31/32] expr: add assert for `&` --- src/uu/expr/src/syntax_tree.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/uu/expr/src/syntax_tree.rs b/src/uu/expr/src/syntax_tree.rs index e0e786b3a3..2cd2af0b12 100644 --- a/src/uu/expr/src/syntax_tree.rs +++ b/src/uu/expr/src/syntax_tree.rs @@ -470,6 +470,7 @@ fn infix_operator_or(values: &[String]) -> String { } fn infix_operator_and(values: &[String]) -> String { + assert!(values.len() == 2); if value_as_bool(&values[0]) && value_as_bool(&values[1]) { values[0].clone() } else { From d325a952ee1133eaa76cc3d1196a9364c2a539dc Mon Sep 17 00:00:00 2001 From: Zhuoxun Yang Date: Tue, 17 Oct 2023 22:27:47 +0800 Subject: [PATCH 32/32] expr: return "0" for `|` --- src/uu/expr/src/syntax_tree.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/uu/expr/src/syntax_tree.rs b/src/uu/expr/src/syntax_tree.rs index 2cd2af0b12..c55fb0bdc6 100644 --- a/src/uu/expr/src/syntax_tree.rs +++ b/src/uu/expr/src/syntax_tree.rs @@ -464,8 +464,10 @@ fn infix_operator_or(values: &[String]) -> String { assert!(values.len() == 2); if value_as_bool(&values[0]) { values[0].clone() - } else { + } else if value_as_bool(&values[1]) { values[1].clone() + } else { + 0.to_string() } }