# Bazeld # | OS | Build Status | |:--------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Linux | [![Linux Build Status](https://circleci.com/gh/SecurityInsanity/bazled/tree/master.svg?style=svg)](https://circleci.com/gh/SecurityInsanity/sentry-rs/tree/master) | | Windows | [![Windows Build status](https://ci.appveyor.com/api/projects/status/c3g2onypn7mxrdk9/branch/master?svg=true)](https://ci.appveyor.com/project/SecurityInsanity/bazled) | Bazled, is a wrapper around Google's build system [bazel][bazel_link]. Since this project is just a wrapper it is 100% compatible with bazel, and can be used as an optional component. You don't have to force people to use bazeld. They can still use bazel. This project initially came out of wanting something like [BUCK's][buck_link] project aliasing. I couldn't really find documentation on it. To this day I still don't think they have it. As such I decided to create bazeld to perform that. I figured I'd want to wrap bazel's command line tool to perform this. Although I haven't used Bazel all that much I figured I might as well start with this, and other things will crop up as I use it. Feel free to file an issue if you have an idea for something. ## Installation ## 1. Make sure you have rust installed, and ready to build. [Go Here][rust_link], or use this one-line bash statement: `curl -sSf https://static.rust-lang.org/rustup.sh | sh`. 2. Once you have rust installed simply run: `cargo install bazeld` ## Configuring ## Configuring for Bazeld is done a per directory config. This allows for easier management in monorepos. Bazeld takes your current directory, and searches for files in `.bazled/`. This makes it not get in the way of bazel. If no configuration is in `.bazled/`, bazled will basically be just a normal bazel. Since it's a per directory config in a monorepo you can have for example: ```text monorepo/ .bazled/ project_one/ project_two/ ``` When you're inside `project_one`, you can have a unique configuration, and when you're inside `project_two` you can have a completely seperate configuration. For example you probably want to have different default projects in those directories. This design allows for that. I recommend taking a look at the Wiki for the possible configuration values. ## License ## Bazeld is licensed under MIT. [bazel_link]: https://bazel.build/ [buck_link]: https://buckbuild.com/ [rust_link]: https://www.rust-lang.org/en-US/downloads.html