harmony/harmony_cli
Ian Letourneau f0ed548755
Some checks failed
Run Check Script / check (push) Successful in 1m18s
Compile and package harmony_composer / package_harmony_composer (push) Failing after -1s
fix: improve usage of indicatif for tracking progress (#101)
The multiprogress wasn't used properly and leading to conflicting progress bars (within our own progress bars, as well as the log wrapper).

This PR introduce a layer on top of `indicatif::MultiProgress` to properly handle sections of progress bars, where we can dynamically add/update/remove progress bars from any sections.

We can see in the demo that new sections + progress bars are added on the fly and that extra logs (e.g. info logs) are appended on top of the progress bars.

Progress are also grouped together based on their parent score.

Co-authored-by: Ian Letourneau <letourneau.ian@gmail.com>
Co-authored-by: johnride <jg@nationtech.io>
Reviewed-on: https://git.nationtech.io/NationTech/harmony/pulls/101
2025-08-11 23:47:11 +00:00
..
src fix: improve usage of indicatif for tracking progress (#101) 2025-08-11 23:47:11 +00:00
Cargo.toml fix: prevent instrumentation to run in test mode (#102) 2025-08-11 23:42:08 +00:00
README.md docs: New README, two options to choose from right now (#59) 2025-06-12 18:16:43 +00:00

Quick demo

cargo run -p example-tui

This will launch Harmony's minimalist terminal ui which embeds a few demo scores.

Usage instructions will be displayed at the bottom of the TUI.

cargo run --bin example-cli -- --help

This is the harmony CLI, a minimal implementation

The current help text:

Usage: example-cli [OPTIONS]

Options:
  -y, --yes              Run score(s) or not
  -f, --filter <FILTER>  Filter query
  -i, --interactive      Run interactive TUI or not
  -a, --all              Run all or nth, defaults to all
  -n, --number <NUMBER>  Run nth matching, zero indexed [default: 0]
  -l, --list             list scores, will also be affected by run filter
  -h, --help             Print help
  -V, --version          Print version```