Move --verbose to the mvt-ios and mvt-android command groups
Current state
Verbose logging is wired per subcommand: seven check-* commands each declare their own -v/--verbose flag and call set_verbose_logging() at the top of their callback (src/mvt/ios/cli.py, src/mvt/android/cli.py), while other subcommands (decrypt-backup, extract-key, check-iocs) offer no verbosity control at all.
With extensible CLI commands (#853), this duplication now extends beyond the core CLI: every external command shipped through mvt.ios.cli_plugins / mvt.android.cli_plugins has to re-declare the flag and re-implement the set_verbose_logging() call to behave like a built-in command.
Proposal
Declare -v/--verbose once on the root Click groups and apply it in the group callback, before subcommand dispatch:
mvt-ios -v check-backup --output ./out ./backup
mvt-android -v check-androidqf ./acquisition.zipBenefits:
- One implementation instead of seven; the three commands currently missing the flag gain it for free.
- External/plugin commands inherit verbosity with zero code — no more copying logging boilerplate into every plugin.
- The level is set before the group callback produces any output, so early messages (including warnings emitted while loading external commands and modules) are captured under the requested verbosity, which is not the case today.
Compatibility
Keep the existing per-subcommand -v/--verbose flags for a deprecation period as hidden aliases that simply re-apply the level, so mvt-ios check-backup -v keeps working while documentation moves to the group-level form.
Source: mvt-project/mvt