mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
Merge branch 'main' into split-gnu-test-fail.sh
This commit is contained in:
commit
e0b000a3bc
29 changed files with 69 additions and 133 deletions
|
@ -1,2 +1,2 @@
|
|||
msrv = "1.64.0"
|
||||
msrv = "1.70.0"
|
||||
cognitive-complexity-threshold = 10
|
||||
|
|
38
.github/workflows/CICD.yml
vendored
38
.github/workflows/CICD.yml
vendored
|
@ -11,7 +11,7 @@ env:
|
|||
PROJECT_NAME: coreutils
|
||||
PROJECT_DESC: "Core universal (cross-platform) utilities"
|
||||
PROJECT_AUTH: "uutils"
|
||||
RUST_MIN_SRV: "1.64.0"
|
||||
RUST_MIN_SRV: "1.70.0"
|
||||
# * 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
|
||||
|
||||
|
@ -30,7 +30,7 @@ jobs:
|
|||
name: Style/cargo-deny
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: EmbarkStudios/cargo-deny-action@v1
|
||||
|
||||
style_deps:
|
||||
|
@ -47,7 +47,7 @@ jobs:
|
|||
- { os: macos-latest , features: "feat_Tier1,feat_require_unix,feat_require_unix_utmpx" }
|
||||
- { os: windows-latest , features: feat_os_windows }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@nightly
|
||||
## note: requires 'nightly' toolchain b/c `cargo-udeps` uses the `rustc` '-Z save-analysis' option
|
||||
## * ... ref: <https://github.com/est31/cargo-udeps/issues/73>
|
||||
|
@ -91,7 +91,7 @@ jobs:
|
|||
job:
|
||||
- { os: ubuntu-latest , features: feat_os_unix }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: stable
|
||||
|
@ -131,7 +131,7 @@ jobs:
|
|||
env:
|
||||
RUN_FOR: 60
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@nightly
|
||||
- name: Install `cargo-fuzz`
|
||||
run: cargo install cargo-fuzz
|
||||
|
@ -182,7 +182,7 @@ jobs:
|
|||
- { os: macos-latest , features: feat_os_macos }
|
||||
- { os: windows-latest , features: feat_os_windows }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: stable
|
||||
|
@ -238,7 +238,7 @@ jobs:
|
|||
job:
|
||||
- { os: ubuntu-latest , features: feat_os_unix }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Initialize workflow variables
|
||||
id: vars
|
||||
shell: bash
|
||||
|
@ -292,7 +292,7 @@ jobs:
|
|||
# - { os: macos-latest , features: feat_os_macos }
|
||||
# - { os: windows-latest , features: feat_os_windows }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: stable
|
||||
|
@ -345,7 +345,7 @@ jobs:
|
|||
job:
|
||||
- { os: ubuntu-latest , features: feat_os_unix }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ env.RUST_MIN_SRV }}
|
||||
|
@ -413,7 +413,7 @@ jobs:
|
|||
job:
|
||||
- { os: ubuntu-latest , features: feat_os_unix }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: "`cargo update` testing"
|
||||
|
@ -436,7 +436,7 @@ jobs:
|
|||
job:
|
||||
- { os: ubuntu-latest , features: feat_os_unix }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: taiki-e/install-action@nextest
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
|
@ -490,7 +490,7 @@ jobs:
|
|||
- { os: macos-latest , features: feat_os_macos }
|
||||
- { os: windows-latest , features: feat_os_windows }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: taiki-e/install-action@nextest
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
|
@ -517,7 +517,7 @@ jobs:
|
|||
- { os: macos-latest , features: feat_os_macos }
|
||||
- { os: windows-latest , features: feat_os_windows }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@nightly
|
||||
- uses: taiki-e/install-action@nextest
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
|
@ -541,7 +541,7 @@ jobs:
|
|||
job:
|
||||
- { os: ubuntu-latest , features: feat_os_unix }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Run sccache-cache
|
||||
|
@ -661,7 +661,7 @@ jobs:
|
|||
- { os: windows-latest , target: x86_64-pc-windows-gnu , features: feat_os_windows } ## note: requires rust >= 1.43.0 to link correctly
|
||||
- { os: windows-latest , target: x86_64-pc-windows-msvc , features: feat_os_windows }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ env.RUST_MIN_SRV }}
|
||||
|
@ -920,7 +920,7 @@ jobs:
|
|||
run: |
|
||||
## VARs setup
|
||||
echo "TEST_SUMMARY_FILE=busybox-result.json" >> $GITHUB_OUTPUT
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@v0.0.3
|
||||
|
@ -1000,7 +1000,7 @@ jobs:
|
|||
outputs() { step_id="${{ github.action }}"; for var in "$@" ; do echo steps.${step_id}.outputs.${var}="${!var}"; echo "${var}=${!var}" >> $GITHUB_OUTPUT; done; }
|
||||
TEST_SUMMARY_FILE="toybox-result.json"
|
||||
outputs TEST_SUMMARY_FILE
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ env.RUST_MIN_SRV }}
|
||||
|
@ -1071,7 +1071,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Check
|
||||
run: npx --yes @taplo/cli fmt --check
|
||||
|
@ -1091,7 +1091,7 @@ jobs:
|
|||
- { os: macos-latest , features: macos, toolchain: nightly }
|
||||
- { os: windows-latest , features: windows, toolchain: nightly-x86_64-pc-windows-gnu }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: ${{ matrix.job.toolchain }}
|
||||
|
|
4
.github/workflows/CheckScripts.yml
vendored
4
.github/workflows/CheckScripts.yml
vendored
|
@ -29,7 +29,7 @@ jobs:
|
|||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run ShellCheck
|
||||
uses: ludeeus/action-shellcheck@master
|
||||
env:
|
||||
|
@ -50,7 +50,7 @@ jobs:
|
|||
contents: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup shfmt
|
||||
uses: mfinelli/setup-shfmt@v2
|
||||
- name: Run shfmt
|
||||
|
|
4
.github/workflows/FixPR.yml
vendored
4
.github/workflows/FixPR.yml
vendored
|
@ -26,7 +26,7 @@ jobs:
|
|||
job:
|
||||
- { os: ubuntu-latest , features: feat_os_unix }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Initialize job variables
|
||||
id: vars
|
||||
shell: bash
|
||||
|
@ -85,7 +85,7 @@ jobs:
|
|||
job:
|
||||
- { os: ubuntu-latest , features: feat_os_unix }
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Initialize job variables
|
||||
id: vars
|
||||
shell: bash
|
||||
|
|
8
.github/workflows/GnuTests.yml
vendored
8
.github/workflows/GnuTests.yml
vendored
|
@ -55,7 +55,7 @@ jobs:
|
|||
TEST_FULL_SUMMARY_FILE='gnu-full-result.json'
|
||||
outputs SUITE_LOG_FILE ROOT_SUITE_LOG_FILE TEST_FILESET_PREFIX TEST_FILESET_SUFFIX TEST_LOGS_GLOB TEST_SUMMARY_FILE TEST_FULL_SUMMARY_FILE
|
||||
- name: Checkout code (uutil)
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: '${{ steps.vars.outputs.path_UUTILS }}'
|
||||
- uses: dtolnay/rust-toolchain@master
|
||||
|
@ -66,7 +66,7 @@ jobs:
|
|||
with:
|
||||
workspaces: "./${{ steps.vars.outputs.path_UUTILS }} -> target"
|
||||
- name: Checkout code (GNU coreutils)
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'coreutils/coreutils'
|
||||
path: '${{ steps.vars.outputs.path_GNU }}'
|
||||
|
@ -307,11 +307,11 @@ jobs:
|
|||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout code uutil
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: 'uutils'
|
||||
- name: Checkout GNU coreutils
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'coreutils/coreutils'
|
||||
path: 'gnu'
|
||||
|
|
2
.github/workflows/android.yml
vendored
2
.github/workflows/android.yml
vendored
|
@ -26,7 +26,7 @@ jobs:
|
|||
env:
|
||||
TERMUX: v0.118.0
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Restore AVD cache
|
||||
uses: actions/cache/restore@v3
|
||||
id: avd-cache
|
||||
|
|
4
.github/workflows/freebsd.yml
vendored
4
.github/workflows/freebsd.yml
vendored
|
@ -30,7 +30,7 @@ jobs:
|
|||
SCCACHE_GHA_ENABLED: "true"
|
||||
RUSTC_WRAPPER: "sccache"
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@v0.0.3
|
||||
|
@ -120,7 +120,7 @@ jobs:
|
|||
SCCACHE_GHA_ENABLED: "true"
|
||||
RUSTC_WRAPPER: "sccache"
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@v0.0.3
|
||||
|
|
51
Cargo.lock
generated
51
Cargo.lock
generated
|
@ -34,16 +34,15 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "anstream"
|
||||
version = "0.3.2"
|
||||
version = "0.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
|
||||
checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"anstyle-parse",
|
||||
"anstyle-query",
|
||||
"anstyle-wincon",
|
||||
"colorchoice",
|
||||
"is-terminal",
|
||||
"utf8parse",
|
||||
]
|
||||
|
||||
|
@ -73,9 +72,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "anstyle-wincon"
|
||||
version = "1.0.1"
|
||||
version = "2.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
|
||||
checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"windows-sys 0.48.0",
|
||||
|
@ -263,32 +262,31 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.3.21"
|
||||
version = "4.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd"
|
||||
checksum = "6a13b88d2c62ff462f88e4a121f17a82c1af05693a2f192b5c38d14de73c19f6"
|
||||
dependencies = [
|
||||
"clap_builder",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_builder"
|
||||
version = "4.3.21"
|
||||
version = "4.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa"
|
||||
checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
"clap_lex",
|
||||
"once_cell",
|
||||
"strsim",
|
||||
"terminal_size",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap_complete"
|
||||
version = "4.3.0"
|
||||
version = "4.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a04ddfaacc3bc9e6ea67d024575fafc2a813027cf374b8f24f7bc233c6b6be12"
|
||||
checksum = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5"
|
||||
dependencies = [
|
||||
"clap",
|
||||
]
|
||||
|
@ -389,7 +387,6 @@ dependencies = [
|
|||
"filetime",
|
||||
"glob",
|
||||
"hex-literal",
|
||||
"is-terminal",
|
||||
"libc",
|
||||
"nix",
|
||||
"once_cell",
|
||||
|
@ -1030,10 +1027,11 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
|||
|
||||
[[package]]
|
||||
name = "half"
|
||||
version = "2.2.1"
|
||||
version = "2.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
|
||||
checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"crunchy",
|
||||
]
|
||||
|
||||
|
@ -1138,17 +1136,6 @@ dependencies = [
|
|||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "is-terminal"
|
||||
version = "0.4.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
|
||||
dependencies = [
|
||||
"hermit-abi",
|
||||
"rustix 0.38.8",
|
||||
"windows-sys 0.48.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.11.0"
|
||||
|
@ -2311,7 +2298,6 @@ name = "uu_cat"
|
|||
version = "0.0.21"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"is-terminal",
|
||||
"nix",
|
||||
"thiserror",
|
||||
"uucore",
|
||||
|
@ -2411,7 +2397,6 @@ version = "0.0.21"
|
|||
dependencies = [
|
||||
"bstr",
|
||||
"clap",
|
||||
"is-terminal",
|
||||
"memchr",
|
||||
"uucore",
|
||||
]
|
||||
|
@ -2679,7 +2664,6 @@ dependencies = [
|
|||
"chrono",
|
||||
"clap",
|
||||
"glob",
|
||||
"is-terminal",
|
||||
"lscolors",
|
||||
"number_prefix",
|
||||
"once_cell",
|
||||
|
@ -2732,7 +2716,6 @@ version = "0.0.21"
|
|||
dependencies = [
|
||||
"clap",
|
||||
"crossterm",
|
||||
"is-terminal",
|
||||
"nix",
|
||||
"unicode-segmentation",
|
||||
"unicode-width",
|
||||
|
@ -2773,7 +2756,6 @@ name = "uu_nohup"
|
|||
version = "0.0.21"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"is-terminal",
|
||||
"libc",
|
||||
"uucore",
|
||||
]
|
||||
|
@ -3072,7 +3054,6 @@ version = "0.0.21"
|
|||
dependencies = [
|
||||
"clap",
|
||||
"fundu",
|
||||
"is-terminal",
|
||||
"libc",
|
||||
"memchr",
|
||||
"notify",
|
||||
|
@ -3162,7 +3143,6 @@ name = "uu_tty"
|
|||
version = "0.0.21"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"is-terminal",
|
||||
"nix",
|
||||
"uucore",
|
||||
]
|
||||
|
@ -3331,12 +3311,11 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
|||
|
||||
[[package]]
|
||||
name = "walkdir"
|
||||
version = "2.3.2"
|
||||
version = "2.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
|
||||
checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
|
||||
dependencies = [
|
||||
"same-file",
|
||||
"winapi",
|
||||
"winapi-util",
|
||||
]
|
||||
|
||||
|
|
12
Cargo.toml
12
Cargo.toml
|
@ -16,7 +16,7 @@ repository = "https://github.com/uutils/coreutils"
|
|||
readme = "README.md"
|
||||
keywords = ["coreutils", "uutils", "cross-platform", "cli", "utility"]
|
||||
categories = ["command-line-utilities"]
|
||||
rust-version = "1.64.0"
|
||||
rust-version = "1.70.0"
|
||||
edition = "2021"
|
||||
|
||||
build = "build.rs"
|
||||
|
@ -268,8 +268,8 @@ chrono = { version = "^0.4.28", default-features = false, features = [
|
|||
"alloc",
|
||||
"clock",
|
||||
] }
|
||||
clap = { version = "4.3", features = ["wrap_help", "cargo"] }
|
||||
clap_complete = "4.3"
|
||||
clap = { version = "4.4", features = ["wrap_help", "cargo"] }
|
||||
clap_complete = "4.4"
|
||||
clap_mangen = "0.2"
|
||||
compare = "0.1.0"
|
||||
coz = { version = "0.1.3" }
|
||||
|
@ -284,9 +284,8 @@ fts-sys = "0.2"
|
|||
fundu = "2.0.0"
|
||||
gcd = "2.3"
|
||||
glob = "0.3.1"
|
||||
half = "2.2"
|
||||
half = "2.3"
|
||||
indicatif = "0.17"
|
||||
is-terminal = "0.4.9"
|
||||
itertools = "0.11.0"
|
||||
libc = "0.2.147"
|
||||
lscolors = { version = "0.15.0", default-features = false, features = [
|
||||
|
@ -328,7 +327,7 @@ time = { version = "0.3" }
|
|||
unicode-segmentation = "1.10.1"
|
||||
unicode-width = "0.1.10"
|
||||
utf-8 = "0.7.6"
|
||||
walkdir = "2.3"
|
||||
walkdir = "2.4"
|
||||
winapi-util = "0.1.5"
|
||||
windows-sys = { version = "0.48.0", default-features = false }
|
||||
xattr = "1.0.1"
|
||||
|
@ -491,7 +490,6 @@ time = { workspace = true, features = ["local-offset"] }
|
|||
unindent = "0.2"
|
||||
uucore = { workspace = true, features = ["entries", "process", "signals"] }
|
||||
walkdir = { workspace = true }
|
||||
is-terminal = { workspace = true }
|
||||
hex-literal = "0.4.1"
|
||||
rstest = { workspace = true }
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
[](https://deps.rs/repo/github/uutils/coreutils)
|
||||
|
||||
[](https://codecov.io/gh/uutils/coreutils)
|
||||

|
||||

|
||||
|
||||
</div>
|
||||
|
||||
|
@ -71,7 +71,7 @@ the [coreutils docs](https://github.com/uutils/uutils.github.io) repository.
|
|||
### Rust Version
|
||||
|
||||
uutils follows Rust's release channels and is tested against stable, beta and
|
||||
nightly. The current Minimum Supported Rust Version (MSRV) is `1.64.0`.
|
||||
nightly. The current Minimum Supported Rust Version (MSRV) is `1.70.0`.
|
||||
|
||||
## Building
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@ path = "src/cat.rs"
|
|||
[dependencies]
|
||||
clap = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
is-terminal = { workspace = true }
|
||||
uucore = { workspace = true, features = ["fs", "pipes"] }
|
||||
|
||||
[target.'cfg(unix)'.dependencies]
|
||||
|
|
|
@ -7,9 +7,8 @@
|
|||
|
||||
// last synced with: cat (GNU coreutils) 8.13
|
||||
use clap::{crate_version, Arg, ArgAction, Command};
|
||||
use is_terminal::IsTerminal;
|
||||
use std::fs::{metadata, File};
|
||||
use std::io::{self, Read, Write};
|
||||
use std::io::{self, IsTerminal, Read, Write};
|
||||
use thiserror::Error;
|
||||
use uucore::display::Quotable;
|
||||
use uucore::error::UResult;
|
||||
|
|
|
@ -19,7 +19,6 @@ clap = { workspace = true }
|
|||
uucore = { workspace = true, features = ["ranges"] }
|
||||
memchr = { workspace = true }
|
||||
bstr = { workspace = true }
|
||||
is-terminal = { workspace = true }
|
||||
|
||||
[[bin]]
|
||||
name = "cut"
|
||||
|
|
|
@ -7,9 +7,8 @@
|
|||
|
||||
use bstr::io::BufReadExt;
|
||||
use clap::{crate_version, Arg, ArgAction, Command};
|
||||
use is_terminal::IsTerminal;
|
||||
use std::fs::File;
|
||||
use std::io::{stdin, stdout, BufReader, BufWriter, Read, Write};
|
||||
use std::io::{stdin, stdout, BufReader, BufWriter, IsTerminal, Read, Write};
|
||||
use std::path::Path;
|
||||
use uucore::display::Quotable;
|
||||
use uucore::error::{FromIo, UResult, USimpleError};
|
||||
|
|
|
@ -25,7 +25,6 @@ glob = { workspace = true }
|
|||
lscolors = { workspace = true }
|
||||
uucore = { workspace = true, features = ["entries", "fs"] }
|
||||
once_cell = { workspace = true }
|
||||
is-terminal = { workspace = true }
|
||||
selinux = { workspace = true, optional = true }
|
||||
|
||||
[[bin]]
|
||||
|
|
|
@ -10,12 +10,11 @@ use clap::{
|
|||
crate_version, Arg, ArgAction, Command,
|
||||
};
|
||||
use glob::{MatchOptions, Pattern};
|
||||
use is_terminal::IsTerminal;
|
||||
use lscolors::LsColors;
|
||||
use number_prefix::NumberPrefix;
|
||||
use once_cell::unsync::OnceCell;
|
||||
use std::collections::HashSet;
|
||||
use std::num::IntErrorKind;
|
||||
use std::{collections::HashSet, io::IsTerminal};
|
||||
|
||||
#[cfg(windows)]
|
||||
use std::os::windows::fs::MetadataExt;
|
||||
|
|
|
@ -18,7 +18,6 @@ path = "src/more.rs"
|
|||
clap = { workspace = true }
|
||||
uucore = { workspace = true }
|
||||
crossterm = { workspace = true }
|
||||
is-terminal = { workspace = true }
|
||||
unicode-width = { workspace = true }
|
||||
unicode-segmentation = { workspace = true }
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
use std::{
|
||||
fs::File,
|
||||
io::{stdin, stdout, BufReader, Read, Stdout, Write},
|
||||
io::{stdin, stdout, BufReader, IsTerminal, Read, Stdout, Write},
|
||||
path::Path,
|
||||
time::Duration,
|
||||
};
|
||||
|
@ -22,7 +22,6 @@ use crossterm::{
|
|||
terminal::{self, Clear, ClearType},
|
||||
};
|
||||
|
||||
use is_terminal::IsTerminal;
|
||||
use unicode_segmentation::UnicodeSegmentation;
|
||||
use unicode_width::UnicodeWidthStr;
|
||||
use uucore::display::Quotable;
|
||||
|
|
|
@ -17,7 +17,6 @@ path = "src/nohup.rs"
|
|||
[dependencies]
|
||||
clap = { workspace = true }
|
||||
libc = { workspace = true }
|
||||
is-terminal = { workspace = true }
|
||||
uucore = { workspace = true, features = ["fs"] }
|
||||
|
||||
[[bin]]
|
||||
|
|
|
@ -6,14 +6,13 @@
|
|||
// spell-checker:ignore (ToDO) execvp SIGHUP cproc vprocmgr cstrs homeout
|
||||
|
||||
use clap::{crate_version, Arg, ArgAction, Command};
|
||||
use is_terminal::IsTerminal;
|
||||
use libc::{c_char, dup2, execvp, signal};
|
||||
use libc::{SIGHUP, SIG_IGN};
|
||||
use std::env;
|
||||
use std::ffi::CString;
|
||||
use std::fmt::{Display, Formatter};
|
||||
use std::fs::{File, OpenOptions};
|
||||
use std::io::Error;
|
||||
use std::io::{Error, IsTerminal};
|
||||
use std::os::unix::prelude::*;
|
||||
use std::path::{Path, PathBuf};
|
||||
use uucore::display::Quotable;
|
||||
|
|
|
@ -22,7 +22,6 @@ memchr = { workspace = true }
|
|||
notify = { workspace = true }
|
||||
uucore = { workspace = true }
|
||||
same-file = { workspace = true }
|
||||
is-terminal = { workspace = true }
|
||||
fundu = { workspace = true }
|
||||
|
||||
[target.'cfg(windows)'.dependencies]
|
||||
|
|
|
@ -10,9 +10,9 @@ use crate::{parse, platform, Quotable};
|
|||
use clap::{crate_version, value_parser};
|
||||
use clap::{Arg, ArgAction, ArgMatches, Command};
|
||||
use fundu::{DurationParser, SaturatingInto};
|
||||
use is_terminal::IsTerminal;
|
||||
use same_file::Handle;
|
||||
use std::ffi::OsString;
|
||||
use std::io::IsTerminal;
|
||||
use std::time::Duration;
|
||||
use uucore::error::{UResult, USimpleError, UUsageError};
|
||||
use uucore::parse_size::{parse_size, ParseSizeError};
|
||||
|
|
|
@ -17,7 +17,6 @@ path = "src/tty.rs"
|
|||
[dependencies]
|
||||
clap = { workspace = true }
|
||||
nix = { workspace = true, features = ["term"] }
|
||||
is-terminal = { workspace = true }
|
||||
uucore = { workspace = true, features = ["fs"] }
|
||||
|
||||
[[bin]]
|
||||
|
|
|
@ -8,8 +8,7 @@
|
|||
// spell-checker:ignore (ToDO) ttyname filedesc
|
||||
|
||||
use clap::{crate_version, Arg, ArgAction, Command};
|
||||
use is_terminal::IsTerminal;
|
||||
use std::io::Write;
|
||||
use std::io::{IsTerminal, Write};
|
||||
use std::os::unix::io::AsRawFd;
|
||||
use uucore::error::{set_exit_code, UResult};
|
||||
use uucore::{format_usage, help_about, help_usage};
|
||||
|
|
|
@ -702,7 +702,7 @@ fn compute_number_width(inputs: &Inputs, settings: &Settings) -> usize {
|
|||
if total == 0 {
|
||||
minimum_width
|
||||
} else {
|
||||
let total_width = (1 + ilog10_u64(total))
|
||||
let total_width = (1 + total.ilog10())
|
||||
.try_into()
|
||||
.expect("ilog of a u64 should fit into a usize");
|
||||
max(total_width, minimum_width)
|
||||
|
@ -857,29 +857,3 @@ fn print_stats(
|
|||
writeln!(stdout)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove and just use usize::ilog10 once the MSRV is >= 1.67.
|
||||
fn ilog10_u64(mut u: u64) -> u32 {
|
||||
if u == 0 {
|
||||
panic!("cannot compute log of 0")
|
||||
}
|
||||
let mut log = 0;
|
||||
if u >= 10_000_000_000 {
|
||||
log += 10;
|
||||
u /= 10_000_000_000;
|
||||
}
|
||||
if u >= 100_000 {
|
||||
log += 5;
|
||||
u /= 100_000;
|
||||
}
|
||||
// Rust's standard library in versions >= 1.67 does something even more clever than this, but
|
||||
// this should work just fine for the time being.
|
||||
log + match u {
|
||||
1..=9 => 0,
|
||||
10..=99 => 1,
|
||||
100..=999 => 2,
|
||||
1000..=9999 => 3,
|
||||
10000..=99999 => 4,
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,10 +58,7 @@ fn args_into_buffer<'a>(
|
|||
buf: &mut Vec<u8>,
|
||||
i: Option<impl Iterator<Item = &'a OsString>>,
|
||||
) -> Result<(), Box<dyn Error>> {
|
||||
// TODO: this should be replaced with let/else once available in the MSRV.
|
||||
let i = if let Some(i) = i {
|
||||
i
|
||||
} else {
|
||||
let Some(i) = i else {
|
||||
buf.extend_from_slice(b"y\n");
|
||||
return Ok(());
|
||||
};
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// For the full copyright and license information, please view the LICENSE
|
||||
// file that was distributed with this source code.
|
||||
use crate::common::util::TestScenario;
|
||||
use is_terminal::IsTerminal;
|
||||
use std::io::IsTerminal;
|
||||
|
||||
#[test]
|
||||
fn test_more_no_arg() {
|
||||
|
|
|
@ -1188,7 +1188,7 @@ fn test_short_combination() {
|
|||
assert_eq!(at.read("x00"), "a");
|
||||
assert_eq!(at.read("x01"), "b");
|
||||
assert_eq!(at.read("x02"), "c");
|
||||
assert_eq!(at.file_exists("x03"), false);
|
||||
assert!(!at.file_exists("x03"));
|
||||
}
|
||||
|
||||
/// Test for the last effective suffix, ignoring all others - numeric long last
|
||||
|
|
|
@ -19,6 +19,7 @@ path_GNU="$(readlink -fm -- "${path_GNU:-${path_UUTILS}/../gnu}")"
|
|||
###
|
||||
|
||||
# On MacOS there is no system /usr/bin/timeout
|
||||
|
||||
# and trying to add it to /usr/bin (with symlink of copy binary) will fail unless system integrity protection is disabled (not ideal)
|
||||
# ref: https://support.apple.com/en-us/102149
|
||||
# On MacOS the Homebrew coreutils could be installed and then "sudo ln -s /opt/homebrew/bin/timeout /usr/local/bin/timeout"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue