2 releases
0.1.1 | Dec 25, 2020 |
---|---|
0.1.0 | May 15, 2020 |
#2195 in Development tools
56KB
706 lines
devbox
A collection of small build related librarires intended to be used as dev-dependencies
Install
To get started, add the following to Cargo.toml under dev-dependencies
:
[dev-dependencies]
devbox = { version = "0.1" }
Test macro
Adds parametrization capabilty to #[test]
via #[args]
attribute macro.
#[args(
char_a: 'a';
char_b: 'b' ! "unexpected character";
)]
#[test]
fn parametrized_test_for(character:_) {
assert_eq!('a', character, "unexpected character");
}
Check #[args] attribute for full example and usage specification.
Build srcipt
Small utility library for easier file manipulation and external tool invocation in Rust build sripts (build.rs) that avoids rebuilding up-to-date build artifacts.
pub fn main() {
let build = Build::new();
let websrc = build.manifest_dir().dir("webapp");
let webwrk = build.out_dir().dir("webapp_build");
let webwrk_pkg = webwrk.file("package.json");
let webwrk_pkl = webwrk.file("package-lock.json");
for unit in websrc.content("*") {
unit.link_from_inside(&webwrk);
}
let npm = Cmd::new("npm").arg("--prefix").arg(webwrk.path());
webwrk.dir("node_modules").mk_from("Install WebApp node packages", &webwrk_pkg + &webwrk_pkl, ||{
npm.clone().arg("install").run();
webwrk.dir("node_modules").touch();
});
webwrk.dir("dist").mk_from("Build WebApp using webpack", &webwrk.content("**"), || {
npm.clone().arg("run").arg("build").run();
webwrk.dir("dist").touch();
});
}
Check build module for fully working example and usage specification.
License
Licensed under MIT license (LICENSE or https://opensource.org/licenses/MIT)
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Devbox by you, shall be licensed as MIT, without any additional terms or conditions.
Dependencies
~5–13MB
~156K SLoC