diff --git a/README.md b/README.md new file mode 100644 index 0000000..7402483 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# Gitlab CI Launchpad Mini Controller + +> And it's in Rust 🦀! + +![Launchpad Mini](https://imgur.com/sdLy3XK.png) + +## Aim + +I wanted to use my Launchpad Mini in a way that was original and useful to me, +as I don't produce music. The Launchpad is a glorified MIDI pad with some LEDs, +and as a MIDI device, it can be interfaced with to do pretty much anything with +it. + +I used mainly two libraries for this project: + +- [gitlab](https://crates.io/crates/gitlab) to interact with the Gitlab API +- [launchy](https://crates.io/crates/launchy) to interact with the Launchpad + +These two libraries are maintained at the moment this README is being written. + +## Building + +As any other `cargo` project, it can be built with a simple command: + +```bash +cargo build --release +``` + +## Configuring + +The configuration is done through a JSON file, named `config.json` and located +in the current working directory. An example configuration file is provided, +`config.json.example`. + +The abs\_x and abs\_y coordinate are defined using the top-left grid tile as +the origin. + +Clicking on a tile opens the corresponding web page for the project linked to +this tile. Clicking on the `A` button will light it up, it is the restart button. +If you click on a tile with the `A` button lit up, it will retry or create a +new pipeline for this project and for this ref. You can disengage the restart +mode by pressing again the `A` button. + +## Limitations + +This project has some limitations right now, and some of them will be fixed: + +- the program is able to talk to one and only one gitlab API right now +- the configuration file has to be in the current working directory +- only one page is allowed, but 8 could be leveraged later using the 8 selectors +