zxc is a directory-oriented command runner.
This means it is able to run commands defined by YAML files.
- YAML-based definition - human-readable and easy to write
- Jinja-based template substitution - flexible
- native look and feel
Simple definition file:
greet:
command: echo "Hello {{ name }}!"
description: Greets specified person.
arguments:
name:
flags: ["-n", "--name"]
default: User
description: |-
Name to greet.Refer to definition file documentation for more information.
Use following command to print Hello world!:
zxc greet --name worldThere are other great tools solving similar issues. Use what suits You best!
just is similar due to being project-oriented.
zxcuses YAML files for definitions, which makes it easy to read and write.justuses syntax inspired bymake- arguably higher entry level.zxcsupport local and external definition files, but working directory is expected to be same as definition file location.justcan be used outside of a directory containingjustfile.zxcis currently supporting one-liners, whilejustcan run multiple commands.zxcgenerates CLIs with native app feel.justis a mature project.
zxcis directory- or project-oriented.naviis a cheatsheet for CLI usage - not attached to specific tool or project.naviuses custom syntax - arguably higher entry level.
cargo build --release
cargo install --path .deb-based systems:
sudo dpkg -i zxc_<version>-1_amd64.debrpm-based systems:
sudo rpm -i zxc-<version>-1.x86_64.rpmpip install pre-commit
cargo install cargo-deb cargo-generate-rpm cargo-aurInstall and run hooks:
pre-commit install
pre-commit run -acargo build --release
cargo test
cargo install --path .Application must be built and stripped:
cargo build --release
strip -s target/release/zxcCreate packages:
cargo deb
cargo generate-rpm
cargo aur