cargo-blinc
About
This crate allows running arbitrary commands and indicate the status of its execution using USB notification light - blink(1).
*By default it runs cargo test
. You can customize the commands and LED colors using configuration file.
##### Example use case:
- run `cargo watch -x blinc`
- after every file save, it will start blinking with blue light
- it will start execution of `cargo test`
- after tests finish it will glow red when tests fail or green when tests succeed
Demo
Installation
To install
cargo install cargo-blinc
To upgrade
cargo install --force cargo-blinc
Make sure that you have correct access rights to access blink(1) device. See udev rules here.
Configuration
By default, no configuration is required if these settings satisfy you:
- tasks: cargo check
, cargo test
- pending task color: blue (blinking)
- failed task color: red
- successful task color: green
You can control all of these by configuration file.
Run cargo blinc --init <path>
to initialize config. It will create file, under specified path, with following content:
```toml [[tasks]] cmd = "cargo" args = ["check"]
[[tasks]] cmd = "cargo" args = ["test"]
[colors] pending = ["blue", "white"] failure = "red" success = "green"
[env] ```
Run cargo blinc --config <path>
to specify path to the configuration file. The default value is .blinc
.
The [env]
section is empty by default. It allows specifying environment variables during execution
of configured [[tasks]]
. Example:
```toml [[tasks]] cmd = "cargo" args = ["check"]
[[tasks]] cmd = "cargo" args = ["test"]
[colors] pending = ["blue", "white"] failure = "red" success = "green"
[env] RUSTLOG = "debug" APIKEY = "1231431" ```
If you don't have a need to specify environment variables, you can remove the section.
License
This project is licensed under either of
At your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.