mirror of
https://github.com/uutils/tar.git
synced 2026-06-10 16:14:35 -07:00
06042058f92563788d0bb767a4a9df44ff9b16ea
Implement the list operation. Non-verbose (-t) prints one entry path per line. Verbose (-tv) prints permissions, owner/group, size, modification time, and path — matching GNU tar's ls-l style output. Adds conflict group so -c, -x, and -t are mutually exclusive. Pulls in chrono for timestamp formatting in verbose output. chrono is already in the workspace dependency set and will also be needed for date parsing when --newer=DATE is implemented. Point uucore/uutests at the coreutils git repo while we're iterating quickly on basic functionality.
tar
Rust reimplementation of the tar utility.
Installation
Ensure you have Rust installed on your system. You can install Rust through rustup.
Clone the repository and build the project using Cargo:
git clone https://github.com/uutils/tar.git
cd tar
cargo build --release
cargo run --release
Testing
The tar application has a focused testing philosophy that separates concerns between the application (CLI interface, error handling, user experience) and the underlying tar-rs library (archive format correctness, encoding, permissions).
See tests/README.md for comprehensive documentation.
# Run all tests
cargo test --all
# Run specific test
cargo test test_create_single_file
License
tar is licensed under the MIT License - see the LICENSE file for details
Languages
Rust
72.4%
Python
19.7%
Shell
7.9%