hull

Crates.iohull
lib.rshull
version0.1.3
sourcesrc
created_at2018-03-28 23:17:55.022652
updated_at2018-07-20 00:20:31.563136
descriptionBuild tool to aid Rust development.
homepagehttps://github.com/azriel91/hull
repositoryhttps://github.com/azriel91/hull
max_upload_size
id57989
size13,043
Azriel Hoh (azriel91)

documentation

https://docs.rs/crate/hull/

README

Hull

Hull is a build tool to aid Rust development across Linux and Windows.

Contents

Usage

Single Crates:

# 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:

# 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:

cargo install hull

From source:

(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 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.

Questions

  • What about OSX?

    I don't have a Mac currently, theoretically it should simply work but no guarantees.

Commit count: 26

cargo fmt