Skip to content

peterkozelj/devbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crates.io MIT licensed

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.

About

Rust developer toolbox

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published