Files
RedBear-OS/local/recipes/system
vasilito 5062b53fca Phase 3B: redbear-cli crate + migrate 3 CLI tools (netctl, mtr, traceroute)
Create the shared CLI library redbear-cli at local/recipes/system/redbear-cli/.
This library provides standardized CommonArgs with:
  --help / -h     (clap built-in)
  --version / -V  (clap built-in)
  -v, --verbose   (repeatable, -vv = trace)
  --log-level     (RUST_LOG-compatible)
  --config        (override config path)
  --foreground    (run in foreground, don't daemonize)
  --dry-run       (don't make changes)

The library also exports an init_logging() function that:
  - Maps verbose count to log level (0=log-level, 1=debug, 2+=trace)
  - Initializes env_logger with default 'info'
  - Formats with millisecond timestamps

Migrated 3 CLI tools to use the shared library:
  - redbear-netctl: Uses CommonArgs for shared flags while preserving
    manual subcommand parsing. existing test suite all passes.
  - redbear-mtr: Converted to clap derive with CommonArgs + tool args.
    -v, --version, --help, --log-level, --config, --foreground work.
  - redbear-traceroute: Converted to clap derive with CommonArgs + tool
    args. Same shared flags work.

Wired into config/redbear-mini.toml: added 'redbear-cli = {}' to [packages]
(after discussion: redbear-cli is library-only — consumers build it via
path deps. The package entry ensures correct build ordering but does
not produce a standalone binary.)

Verification:
  - cargo check passes for redbear-cli, redbear-netctl, redbear-mtr,
    redbear-traceroute
  - redbear-mtr: 2 unit tests pass
  - redbear-traceroute: 4 unit tests pass
  - redbear-netctl: 7 of 8 unit tests pass (1 pre-existing test was
    failing before this change — it checks for an interface path that
    the test environment doesn't create)

All 49 packages pass --check-sweep redbear-mini.
2026-07-28 23:37:15 +09:00
..