# Hull *Hull* is a build tool to aid Rust development across Linux and Windows. ## Contents * [Usage](#usage) * [Installation](#installation) * [Status](#status) * [Motivation](#motivation) * [Questions](#questions) ## Usage Single Crates: ```bash # Compile binaries, tests, and examples: hull build # Compile binaries, tests, and examples in release mode: hull build -- --release # Compile and specify features: hull build -- --features "feature1 feature2" ``` Workspaces: ```bash # Compile binaries, tests, and examples: hull build # Compile binaries, tests, and examples in release mode: hull build -- --release # Arbitrary command hull each -- bash -c 'echo ${PWD}' # Linux, Windows Git Bash hull each -- cmd /Q /C echo %cd% # Windows Cmd # Don't do this, because `hull build` automatically detects whether the crate is a workspace: hull each -- hull build # If you really need to, you can use this: hull each -- hull build --no-detect-workspace ``` ## Installation From `crates.io`: ```bash cargo install hull ``` From source: ```bash (git clone git@github.com:azriel91/hull.git && cd hull && cargo install) ``` ## Status Currently this is in experimental mode, I will gradually productionize the code quality over time. Roadmap: * [ ] Test all code. * [ ] Use a logging framework. * [ ] Use `failure` to handle and report failures. * [ ] Use `indicatif` to reduce log spam when run interactively. ## Motivation This tool was created out of frustration that I couldn't simply "just run this" and compile all my crate compilables across OSes. [`cargo-make`][cargo_make] solved *many* of my build issues, but Windows had too many quirks that meant I'd have to code my build steps in both Bash and Batch to allow seamless integration, but Batch is a language you never want to touch *\*shudder\**. So I decided to write a build tool in Rust. [cargo_make]: https://github.com/sagiegurari/cargo-make ## Questions * What about OSX? I don't have a Mac currently, theoretically it should simply work but no guarantees.