aesy / xpanda

Safe Unix shell-like parameter expansion/variable substitution via cross-platform CLI or Rust API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Crate Downloads Documentation Build Status Test coverage MIT license

Safe Unix shell-like parameter expansion/variable substitution for those who need a more powerful alternative to envsubst but don't want to resort to using Bash's eval, while also not wanting to use a full-on templating engine. Xpanda is available as a native single-binary Windows/Linux CLI tool and a Rust library.

See how it compares to other programs.

Usage

Check out which patterns Xpanda will recognize and expand.

Also check out the readme of the submodule that you are interested in:

Development

Prerequisites

Build

To compile the project, simply issue the following command:

$ cargo build

Test

Linting

This project uses rustfmt for formatting and clippy for linting. Run them with:

$ cargo fmt 
$ cargo clippy
Unit/Integration/Doc Testing

All code that goes into master must pass all tests. To run all tests, use:

$ cargo test
Benchmarking

Benchmarks can be ran using:

$ cargo bench
Fuzz Testing

And fuzz testing, located in the xpanda-fuzz directory, can be ran using the cargo-fuzz tool, which has to be installed first:

$ cargo install cargo-fuzz 

It must then be ran using the nightly channel:

$ cargo +nightly fuzz run fuzz_input --fuzz-dir xpanda-fuzz

Contribute

Use the issue tracker to report bugs or make feature requests. Pull requests are welcome, but it may be a good idea to create an issue to discuss any changes beforehand.

License

MIT, see LICENSE file.

About

Safe Unix shell-like parameter expansion/variable substitution via cross-platform CLI or Rust API

License:MIT License


Languages

Language:Rust 100.0%