Alias any shell command in your Cargo.toml
. It's like npm
scripts, but for cargo
.
cargo install cargo-cmd
You can define your commands in Cargo.toml
under the [package.metadata.commands]
table, like so:
[package.metadata.commands]
greet = "echo 'Hello, planet!'"
Now you can run cargo cmd greet
:
$ cargo cmd greet
> echo 'Hello, planet!'
Hello, planet!
It's possible to pass arguments into your command by passing them directly to cargo cmd
.
[package.metadata.commands]
echo = "echo"
$ 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.
[package.metadata.commands]
pretest = "./setup.sh"
test = "cargo test"
posttest = "./teardown.sh"
$ cargo cmd test
[pretest]
> ./setup.sh
Setting up DB...
[test]
> cargo test
...
[posttest]
> ./teardown.sh
Tearing down DB...