A collection of small build related librarires intended to be used as dev-dependencies
To get started, add the following to Cargo.toml under dev-dependencies:
[dev-dependencies]
devbox = { version = "0.1" }Adds parametrization capabilty to #[test] via #[args] attribute macro.
#[args( char_a:'a'; char_b:'b' ! "unexpected character";)]#[test]fnparametrized_test_for(character:_){assert_eq!('a', character,"unexpected character");}Check #[args] attribute for full example and usage specification.
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.
pubfnmain(){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.
Licensed under MIT license (LICENSE or https://opensource.org/licenses/MIT)
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.