| Crates.io | cargo-wop |
| lib.rs | cargo-wop |
| version | 0.1.6 |
| created_at | 2020-08-24 17:51:15.224246+00 |
| updated_at | 2021-02-13 11:57:04.202638+00 |
| description | Cargo for single-file projects |
| homepage | |
| repository | https://github.com/chmp/cargo-wop |
| max_upload_size | |
| id | 280233 |
| size | 51,952 |
cargo-wop - cargo without projectWARNING: this package is experimental at the moment.
Rust source files as self-contained projects. cargo-wop allows to cargo work
with rust source file as if thy were full projects. This project is heavily
inspired by cargo-script, cargo-eval. In contrast
to these projects, cargo-wop is designed to be as close as possible to cargo
and support all sensible arguments.
Run a file as a script:
cargo wop my-script.rs
# equivalent call:
cargo wop run my-script.rs
Build artifacts defined in the script:
cargo wop build my-script.rs
Run tests define in the script:
cargo wop test my-script.rs
At the moment the following cargo commands are supported: bench, build,
check, clean, clippy, fmt, install, locate-project, metadata,
pkgid, run, tree, test, verify-project. For most commands cargo-wop
rewrites the command line as follows:
# Original command-line
cargo wop [cargo-command] [script] [args...]
# Rewritten command line
cargo [cargo-command] --manifest-path [generated_manifest] [args...]
Some commands use additional rules:
new: create a new source file based on templates. Run cargo wop new to get
a list of all available templates. Run cargo wop new template SOURCE.rs to
create the file.run: all arguments are passed per default to the script, not to cargo. To
pass arguments to cargo place them before a --. For example: cargo wop run my-script.rs --debug -- ...build: is executed twice. Once to build the package and a second time to
determine the generated build artifacts and copy them into the local folderbuild and run default to release builds. To disable this behavior, use the
build-debug and run-debug commands.install: no manifest path is added, but the --path argument to the
manifest directoryCustom commands:
exec execute the command after the source inside the manifest directorymanifest: print out the generated manifestDependencies are described in a cargo manifest embedded in the top-level comment. Importantly, the file must start with the comment for the manifest to be recognized. For example:
//! My script
//!
//! ```cargo
//! [dependencies]
//! serde = "1.0"
//! ```
//!
The embedded manifest can contain any keys recognized by cargo. cargo-wop
normalizes this manifest and makes sure the source file is correctly included.
It also normalizes any paths used to specify dependencies. To show the generated
manifest use:
cargo wop manifest my-script.rs
For example, simply specify a [lib] target with the correct flags set to build
a static C library:
//! My script
//!
//! ```cargo
//! [lib]
//! crate-type = ["cdylib"]
//!
//! [dependencies]
//! ```
This script can be built into a library via:
cargo wop build my-script.rs
Common tasks are bundled in the make.rs script. It can be used with
cargo-wop itself. First install cargo-wop. Then run the make.rs script:
cargo install --path .
cargo wop make.rs precommit
Run cargo wop make.rs help to a see a list of available commands.