Cargo Commander serves to fill the gap in the cargo commands capabilities, namely not being able to run
commands in a similar fashion that npm does with scripts.
Either create your commands under a [commands] section in your Cargo.toml file, or create a new
Commands.toml file which uses the exact same syntax as if it had been under the commands section.
```shell
cargo install cargo-commander
cargo cmd COMMAND ```
Here are some examples of how you can set up commands. ```toml
[commands] hello = "echo world" multiple = ["echo first", "echo second"] advanced = { cmd = "print('Hello from python!')", shell = "python -c"} [commands.test] hello = "echo test" ```
```toml
hello = "echo world" super_advanced = { cmd = [ "echo we", "echo run", "echo in", "echo parallel" ], parallel = true} [git] status = "git status" ```
If you want to see more examples, check out the Commands.toml file in the repository.
First we have the simplest of the commands, a simple string. It will be executed in the system default
shell, either cmd /C or sh -c depending on if you're on Windows or not.
toml
example = "echo Hello"
Secondly, you can give an array of strings. This will run each command in sequence.
toml
example = [
"echo First",
"echo Second",
{ cmd = "echo Third" }
]
A command object has a very simple syntax to customize its run.
toml
example = { cmd = ["echo One", "echo Two"], parallel = true}
Command object fields:
cmd = String or Array, where an array can either contain string commands or other command objects
parallel = true/false, only makes a difference if the command object contains an array, makes all commands run in parallel
shell = String, the syntax is simply "program arg arg arg"
You can structure your commands in sections, and you can run entire sections if you like.
For example:
toml
[numbers]
first = "echo first"
second = "echo second"
third = "echo third"
[numbers.tens]
ten = "echo ten"
twenty = "echo twenty"
thirty = "echo thirty"
With the above configuration, running cargo cmd numbers.tens would run all commands in the numbers.tens section.
Running cargo cmd numbers would run all commands in the numbers section, INCLUDING the ones in numbers.tens.
Running cargo cmd numbers.first will only run the first command.