mirror of
https://github.com/uutils/tar.git
synced 2026-06-10 16:14:35 -07:00
b4865dab245aec73cc8c78366280cca6d6d70b87
The GNU tar CI job depends on git.savannah.gnu.org, which can fail transiently during clone or submodule setup. Retry those network-dependent setup steps with exponential backoff before failing the job. Keep cleanup scoped to failed clone attempts, fail early if path_GNU already points at a non-git directory, and tighten the helper script with pipefail and shellcheck-clean quoting.
tar
Rust reimplementation of the tar utility.
Installation
We provide a pre-built binary from main branch.
To build tar from source, install Rust on your system. You can install Rust via 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%