Alias any shell command in your Cargo.toml
. It's like npm
scripts, but for cargo
.
sh
cargo install cargo-cmd
You can define your commands in Cargo.toml
under the [package.metadata.commands]
table, like so:
toml
[package.metadata.commands]
greet = "echo 'Hello, planet!'"
Now you can run cargo cmd greet
:
```sh $ cargo cmd greet
echo 'Hello, planet!' Hello, planet! ```
It's possible to pass arguments into your command by passing them directly to cargo cmd
.
toml
[package.metadata.commands]
echo = "echo"
```sh $ cargo cmd echo 'Hello, planet!'
echo 'Hello, planet!' Hello, planet! ```
You are able to set up commands to run before and after your command by prefixing the name with pre
or post
respectively.
toml
[package.metadata.commands]
pretest = "./setup.sh"
test = "cargo test"
posttest = "./teardown.sh"
```sh $ cargo cmd test
[pretest]
./setup.sh Setting up DB...
[test]
cargo test ...
[posttest]
./teardown.sh Tearing down DB... ```