Commit graph

355 commits

Author SHA1 Message Date
Roy Ivy III
246e4427e4 docs/build ~ polish descriptions and crate meta-information in Cargo.toml 2020-11-08 19:56:56 -06:00
Roy Ivy III
ad30781c0c build/uucore_procs ~ add debugging statements 2020-11-08 19:56:56 -06:00
Roy Ivy III
a352657e1f build/uucore_procs ~ add/improve debug infrastructure
- add proc_dbg! macro
- use debug feature to trigger debug traits for the syn crate
2020-11-08 19:56:56 -06:00
Roy Ivy III
cf2fcd8dc1 docs/uucore_macros ~ improve commentary/documentation 2020-11-08 19:56:56 -06:00
Roy Ivy III
c32ff9e8bb change ~ use updated SIGPIPE in procs 2020-11-08 19:56:56 -06:00
Roy Ivy III
0432063479 change ~ add proc-macros module (uucore_procs) with uucore_procs::main()
- `uucore_procs::main!(UUTIL_NAME)` allows simple, consistent instantiation of `main()` for uutils
2020-11-08 19:56:55 -06:00
Roy Ivy III
503cc53014 change ~ improve naming and documentation of default SIGPIPE handling 2020-11-08 19:56:55 -06:00
Roy Ivy III
b0d02e7f43 change ~ reorganize code layout/structure 2020-11-08 19:56:55 -06:00
Roy Ivy III
6a8a677e8b refactor/polish ~ cargo fmt 2020-11-08 19:56:55 -06:00
Roy Ivy III
099b0a2074 0.0.2 2020-11-08 19:56:55 -06:00
Roy Ivy III
5b2c2bdfca maint/CICD ~ fix FreeBSD build on Cirrus CI 2020-11-08 19:56:55 -06:00
Roy Ivy III
16157f57eb maint/build ~ refactor (reorganize) and improve comments within 'Cargo.toml' 2020-11-08 19:56:55 -06:00
Roy Ivy III
ceee0ec09e fix build failure caused by imprecise libc version specification
- more precisely describe permissable libc versions

.# [why]

- libc >= v0.2.15 is needed for utmp support.
- libc <= v0.2.66 is required to avoid build errors for MinSRV == 1.31.0.

Intermittant build failures were being caused by `cargo` using early libc versions.
2020-11-08 19:56:55 -06:00
Roy Ivy III
c08674da28 fix build failure caused by data-encoding v2.2.0
- hold data-encoding to known working "<= 2.1.2"

.# [why]

data-encoding v2.2.0 causes a build error for '1.31.0-i686-pc-windows-msvc'.

```
cargo +1.31.0-i686-pc-windows-msvc build --target=i686-pc-windows-msvc --all-features
...
error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130)
   --> C:\Users\appveyor\.cargo\registry\src\github.com-1ecc6299db9ec823\data-encoding-2.2.0\src\lib.rs:194:5
    |
187 | / mod prelude {
188 | |     pub use std::borrow::Cow;
189 | | }
    | |_- not an extern crate passed with `--extern`
...
194 |   use prelude::*;
    |       ^^^^^^^
    |
...
```
2020-11-08 19:56:55 -06:00
Roy Ivy III
96a92b3533 refactor ~ pin all crate versions < v1.0.0
. #[why]

Technically, by semver rules, projects with versions < v1.0.0 may make breaking
changes with *any* version change. So, for some protection, pin all crates with
version < v1.0.0 to a specific version.

* ref: <https://semver.org> @@ <https://archive.is/LTGHB>
2020-11-08 19:56:55 -06:00
Roy Ivy III
84d8473e1a fix forced MinSRV increase (using pinned 'backtrace' version)
- hotfix transitive bug in 'failure' forcing MinSRV increase to rust v1.33.0 by pinning 'backtrace' to <= 0.3.31
- [rustlang/nursery#340](https://github.com/rust-lang-nursery/failure/issues/340) is now open on 'failure' to address this issue

.# [why]

'failure' was using 'backtrace' `version = "0.3.3"`, which by semantic version
auto-upgrade was pulling in 'backtrace' > v0.3.30 (specifically, v0.3.40 most
recently). 'backtrace' v0.3.31 introduces use of `#[cfg(target_vendor = ...)]`
which requires rust v1.33.0. So, 'backtrace' is forcing an upgrade of MinSRV
to rust v1.33.0 with the change from backtrace v0.3.30 to backtrace v0.3.31.

Technically, by being less than v1.0.0, 'backtrace' has no semantic version
requirement. And there is debate about whether increasing MinSRV is a semantic
change. But, in my strong opinion, breaking our MinSRV statement is definitely
a semantic change.

* ref: <https://github.com/rust-lang/rust/blob/master/RELEASES.md>
2020-11-08 19:56:55 -06:00
Roy Ivy III
667ed39ece fix uucore::fs for windows
- standardize the return value of `std::env::current_dir()` by using `canonicalize()`

.# [why]

`std::env::current_dir()` will, in some situations on windows hosts, return
"short"-type paths (eg, "C:\Progra~1\..."). Using `canonicalize()` transforms
the path in a standard long form but may also require removing a leading
"\\?\" prefix.
2020-11-08 19:56:55 -06:00
Roy Ivy III
2792d85865 fix ~ 'musl' environment doesn't support utmpx 2020-11-08 19:56:55 -06:00
Alex Lyon
217d83526b Set up for release on crates.io 2020-11-08 19:56:54 -06:00
Alex Lyon
12ce90d9cb Fix doc-test for entries on macOS 2020-11-08 19:56:54 -06:00
Alex Lyon
cdafcce400 Redox is not tested currently, so don't mention it 2020-11-08 19:56:54 -06:00
Alex Lyon
12129d1b1c Separate uucore into its own repository 2020-11-08 19:56:54 -06:00
Alex Lyon
76aef60d80 uucore: allow the Linux zero-copy setup on Android 2020-11-08 19:56:54 -06:00
Alex Lyon
f79f0716ee uucore: remove an inaccurate comment 2020-11-08 19:56:54 -06:00
Alex Lyon
72c322a882 uucore, yes: add zero-copy on supported platforms (only Linux currently) 2020-11-08 19:56:54 -06:00
Alex Lyon
d81d3e3c71 Get rid of all warnings on Linux (or at least WSL) 2020-11-08 19:56:54 -06:00
Zachary Dremann
77cc8d39c6 Replace starts_with and slice with trim_left_matches 2020-11-08 19:56:54 -06:00
Zachary Dremann
c15b18bf5b Don't allocate in signal_by_name_or_value 2020-11-08 19:56:54 -06:00
Zachary Dremann
30df2210f0 Fix is_signal 2020-11-08 19:56:54 -06:00
Zachary Dremann
44550ee5b6 Add tests for signals (including failing test for is_signal 2020-11-08 19:56:54 -06:00
Alex Lyon
4e0025cb17 base32, base64, uucore: merge base32/base64 code 2020-11-08 19:56:54 -06:00
Roy Ivy III
6600993c3e fix: gate unix-only macros (silences "unused" warnings) 2020-11-08 19:56:53 -06:00
Vinzent Steinberg
5f582c05e1 Remove utf8 feature
All code it provides can be implemented with `std`.
2020-11-08 19:56:53 -06:00
Vinzent Steinberg
5160f47a9f Fix more clippy warnings and remove redundant 'static 2020-11-08 19:56:53 -06:00
Vinzent Steinberg
de7a6b5afa Fix a few clippy warnings 2020-11-08 19:56:53 -06:00
Roy Ivy III
bd450ebb94 uucore: fix: use updated 'wild' crate for globbing 2020-11-08 19:56:53 -06:00
Roy Ivy III
9e8b002735 uucore: fix: use forked 'wild' crate with case-sensitivity + API fixes 2020-11-08 19:56:53 -06:00
Roy Ivy III
03d6e733e4 uucore: Add globbing for Windows machines 2020-11-08 19:56:53 -06:00
dependabot[bot]
99da2451ab Bump getopts from 0.2.17 to 0.2.18
Bumps [getopts](https://github.com/rust-lang/getopts) from 0.2.17 to 0.2.18.
- [Release notes](https://github.com/rust-lang/getopts/releases)
- [Commits](https://github.com/rust-lang/getopts/compare/0.2.17...v0.2.18)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-11-08 19:56:53 -06:00
dependabot[bot]
b21bd0bea3 Bump time from 0.1.39 to 0.1.40
Bumps [time](https://github.com/rust-lang/time) from 0.1.39 to 0.1.40.
- [Release notes](https://github.com/rust-lang/time/releases)
- [Commits](https://github.com/rust-lang/time/compare/0.1.39...0.1.40)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-11-08 19:56:53 -06:00
dependabot[bot]
a31b1047c1 Bump libc from 0.2.39 to 0.2.42
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.39 to 0.2.42.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.39...0.2.42)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2020-11-08 19:56:53 -06:00
Alex Lyon
40738bfb0a uucore: update data_encoding and add wrap_write() 2020-11-08 19:56:53 -06:00
Valentin Lorentz
2ad767586b chmod: show human-friendly permissions when --changes or --verbose is used.
Like GNU chmod.
2020-11-08 19:56:53 -06:00
Ian Douglas Scott
eedf7cb28a Make the 'cat' utility build on Redox 2020-11-08 19:56:53 -06:00
Alex Lyon
07de3eda6e uucore: make features opt-in rather than opt-out 2020-11-08 19:56:53 -06:00
Alex Lyon
f74a1b6333 Format everything using rustfmt 2020-11-08 19:56:53 -06:00
Alex Lyon
1c0b1ab375 uucore: remove utsname.rs (and replace with platform-info) 2020-11-08 19:56:53 -06:00
Alex Lyon
ca3393bd86 uucore: read from sys:uname on Redox 2020-11-08 19:56:52 -06:00
Alex Lyon
7559c0d83d cp, tail: update winapi 2020-11-08 19:56:52 -06:00
Alex Lyon
f575b8f4f2 arch: add support for building on Windows 2020-11-08 19:56:52 -06:00
Alex Lyon
3cec199da1 Add Sphinx documentation to generate man pages 2020-11-08 19:56:52 -06:00
Alex Lyon
64c2c2055b chmod, install, uucore: fix build on Windows 2020-11-08 19:56:52 -06:00
Alex Lyon
5544def54e Remove pipe_* macros 2020-11-08 19:56:52 -06:00
Alex Lyon
f0bd170996 chmod, install: move mode parsing into uucore 2020-11-08 19:56:52 -06:00
Alex Lyon
fd555c6d21 Handle SIGPIPE correctly and autogenerate main() for each util 2020-11-08 19:56:52 -06:00
Joshua Miller
6998949c06 pin dependencies 2020-11-08 19:56:52 -06:00
Matt8898
e7940828f9 uucore: add support for optflagmulti and optmulti. 2020-11-08 19:56:52 -06:00
Arcterus
e2b8741a35 uucore: compile on Windows again 2020-11-08 19:56:52 -06:00
Arcterus
f61f30f52b uucore: read symlinked directories correctly in resolve_relative_path() 2020-11-08 19:56:52 -06:00
Joseph Crail
f3639b9453 Fix comment spelling 2020-11-08 19:56:52 -06:00
Lei Zhang
3f4dba0de9 Turn off utmpx and signals for Fuchsia.
Fuchsia uses musl as its libc; musl only has stub implementation
for utmpx. From their wiki, that is deliberately chosen.

Fuchsia doesn't have signals mechanism.
2020-11-08 19:56:52 -06:00
Will Wykeham
cf2be8a6b1 Fix a number of Windows build warnings 2020-11-08 19:56:52 -06:00
knight42
09b0b9ad78 chown,chgrp: fix bug in option --preserve-root 2020-11-08 19:56:51 -06:00
knight42
b6dcafc675 uucore::fs: add fn resolve_relative_path 2020-11-08 19:56:51 -06:00
Nathan Ross
22fab1444e uucore: allow 'wrong number of arguments' macro to be more precise 2020-11-08 19:56:51 -06:00
Nathan Ross
8cb2edecb1 uucore: add support for optflagopt to coreopts 2020-11-08 19:56:51 -06:00
Nathan Ross
35951ebf66 uucore: fix utility name in coreopts parsing error messages 2020-11-08 19:56:51 -06:00
Knight
1dab4510b5 Remove uucore::c_types 2020-11-08 19:56:51 -06:00
Knight
d22814201e Add uucore::utsname to get system info 2020-11-08 19:56:51 -06:00
Knight
05b5317605 uucore::process: add functions to obtain uid/gid, euid/egid 2020-11-08 19:56:51 -06:00
Knight
5bc2276775 Add uucore::entries 2020-11-08 19:56:51 -06:00
Knight
434aae76bc uucore::utmpx: fix doctest errors 2020-11-08 19:56:51 -06:00
Knight
0277848de7 uucore: make libc optional 2020-11-08 19:56:51 -06:00
nathanross
50887566ea uucore: coreopts alignment, spacing, and optional usage 2020-11-08 19:56:51 -06:00
Nathan Ross
73d36a1d88 uucore: require version; syntax; summary; longhelp 2020-11-08 19:56:51 -06:00
Knight
6a22120d7b uucore::utmpx: change API and fix error 2020-11-08 19:56:51 -06:00
Knight
58b6ac9393 uucore::utmpx: refine implementation 2020-11-08 19:56:51 -06:00
Knight
3751142ccb coreopts: fix error when using msg_wrong_number_of_arguments macro 2020-11-08 19:56:50 -06:00
Knight
68ad14f3c4 uucore: conditional enable different features 2020-11-08 19:56:50 -06:00
Knight
25018b112b uucore: export latest libc 2020-11-08 19:56:50 -06:00
Knight
789141d926 coreopts: display package name instead of module path 2020-11-08 19:56:50 -06:00
Nathan Ross
bcec54f572 uucore: CoreOptions error and version message templates 2020-11-08 19:56:50 -06:00
Nathan Ross
76952579ac uucore: add message templates 2020-11-08 19:56:50 -06:00
Knight
2c78b92801 uucore: add module encoding 2020-11-08 19:56:50 -06:00
Corey Farwell
bcdb682bf8 Remove unused imports. 2020-11-08 19:56:50 -06:00
Corey Farwell
c6909951aa Cleanup logic around wait_or_timeout exit status handling. 2020-11-08 19:56:50 -06:00
Corey Farwell
72d2ab208c Prefer handling Duration over f32 when dealing with times.
Also refactored out usage of the `time` crate in `uucore`.
2020-11-08 19:56:50 -06:00
Knight
463c6af4e3 uucore: update utmpx 2020-11-08 19:56:50 -06:00
Knight
79b6835612 pinky: cleanup the code 2020-11-08 19:56:50 -06:00
Knight
6e2c3ede40 uucore::utmpx: revert the changes 2020-11-08 19:56:50 -06:00
Knight
967babd1e6 pinky: implement short format 2020-11-08 19:56:50 -06:00
Knight
b0588e482e uucore: add disp_err macro 2020-11-08 19:56:50 -06:00
Shiroy
713770c9ae Add missing lib.name for uucore
Fix build on Linux
2020-11-08 19:56:50 -06:00
Arcterus
a149efe45a uucore: don't follow symlinks when examining them (fixes #799) 2020-11-08 19:56:49 -06:00
Michael Gehring
512a6a3201 expand, unexpand: fix build on stable 2020-11-08 19:56:49 -06:00
Michael Gehring
0a3a2ca935 Fix clippy warnings 2020-11-08 19:56:49 -06:00
Michael Gehring
ce733b38a9 Fix arm build
Fixes #719
2020-11-08 19:56:49 -06:00
Joseph Crail
bde309a29f Remove trait shim needed before Path stabilized
Now that Path has stabilized in Rust 1.5, I removed the UUPathExt trait
needed to support stable, beta, and nightly.
2020-11-08 19:56:49 -06:00
Joseph Crail
0678332a1f Add macro to properly find program name. 2020-11-08 19:56:49 -06:00
Joseph Crail
b8ee12f703 More import fixes for Windows. 2020-11-08 19:56:49 -06:00
Joseph Crail
3863842fae Fix errors with bools represented as ints. 2020-11-08 19:56:49 -06:00
Joseph Crail
9c4c9f6782 Refactor check for standard stream interactivity.
Since several utilities check if the standard streams are interactive, I
moved this into the uucore::fs library as is_std*_interactive(). I also
added Windows support for these methods, which only return false (or at
least until someone finds a way to support this).
2020-11-08 19:56:49 -06:00
Joseph Crail
14eccb4335 uucore: specify a few modules to be Unix-only 2020-11-08 19:56:49 -06:00
Michael Gehring
23e0315262 Remove deprecated lint 2020-11-08 19:56:49 -06:00
Joseph Crail
6095dfee66 Split utility files into separate library.
Everything in src/common has been moved to src/uucore. This is defined
as a Cargo library, instead of directly included. This gives us
flexibility to make the library an external crate in the future.

Fixes #717.
2020-11-08 19:56:42 -06:00