2 unstable releases
0.2.0 | Feb 2, 2024 |
---|---|
0.1.0 | Nov 1, 2018 |
#245 in Cargo plugins
219 downloads per month
9KB
132 lines
cargo-run-script
cargo-run-script
is a Cargo subcommand which allows you to define scripts for common project related tasks within your 'Cargo.toml'. If you are familiar with node, cargo-run-script
brings the npm run
functionality to the Rust and Cargo ecosystem.
Install
cargo-run-script
requires Rust in order to build/install. If you need to install Rust, follow these instructions. Once you have Rust installed, cargo-run-script
can be installed by running the command below:
cargo install cargo-run-script
Defining Scripts
Scripts can be defined for workspaces or for single packages by adding the proper section to the Cargo.toml
file.
Package Scripts
Scripts are defined by adding a [package.metadata.scripts]
section to the Cargo.toml
file of your project, as shown below.
[package.metadata.scripts]
hello = "echo Hello"
goodbye = "echo Goodbye"
A more complete example can be seen by reviewing the Cargo.toml
for this project.
Workspace Scripts
Scripts are defined by adding a [workspace.metadata.scripts]
section to the Cargo.toml
file of your workspace, as shown below.
[workspace.metadata.scripts]
hello = "echo Hello"
goodbye = "echo Goodbye"
Running Scripts
From the root of your project directory (at the same level as the Cargo.toml
), you can run your scripts as shown below.
# to run a script called "hello"
cargo run-script hello
The output of this would be
Running script 'hello': 'echo Hello'
Hello
Finished, status of exit code: 0
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0.5–1MB
~25K SLoC