//! The command line: what the flags are, and what `--help` says about them. //! //! Parsed by hand. A derive-macro dependency would cost more to compile than //! it saves to read at this size, and the parser is small enough to hold in //! one screen and test exhaustively - which is what the tests at the bottom //! do, one property over every flag rather than a case per flag. use std::path::PathBuf; pub(crate) fn usage() { eprintln!( "helm - a queryable database of MegaMek's unit library USAGE helm build --megamek --out [--bridge-dir ] helm stats helm bv-report --megamek --bridge-dir helm art --megamek [--out ] helm index --megamek --bridge-dir --out [--helm-version ] [--filters ] helm force --megamek --bridge-dir helm check --megamek --bridge-dir helm repairs --megamek --bridge-dir helm wear --to --megamek --bridge-dir helm catalogue --bridge-dir --out helm wire-check --megamek --bridge-dir --out BUILD --megamek A MegaMek install. Reads data/mekfiles/unit_files.zip, or the loose .mtf and .blk files if the zip is absent. --out Where to write the SQLite database. --bridge-dir Directory holding units.jsonl and equipment.jsonl from the Java bridge. Without it the database is built from the unit files alone and the computed columns - battle value, cost, Alpha Strike - are null. --megamek-version Recorded in the meta table. Read from the install's docs/history.txt when not given. BV-REPORT How helm-bv's battle values compare with MegaMek's own, design by design. Needs both: the library to compute from, and the bridge dump to check against. Exits non-zero while anything still disagrees. --unit Print one design's working beside MegaMek's instead of the whole report. Matches on any part of the name. --clusters Group the designs that still disagree by what they have in common, worst first. What to fix next, rather than which single design is furthest out. --label