monitor: add cli11 argument parsing

Replace our custom argument parser with one from CLIUtils.

This results in a number of minor behavioral differences.
 - The -? option is no longer recognized as an alias for -h/--help.
 - The original parser returned EXIT_FAILURE in all cases, but CLIUtils
   uses different non-zero error codes in different situations.
 - Minor changes to help text descriptions:
----new----
Usage: build/phosphor-unit-failure-monitor.new [OPTIONS]

Options:
  -h,--help                   Print this help message and exit
  -s,--source TEXT REQUIRED
  -t,--target TEXT REQUIRED
  -a,--action ENUM:value in {start->0,stop->1} OR {0,1} REQUIRED

----old----
Usage: build/phosphor-unit-failure-monitor [options]
Options:
    --help             Print this menu
    --source=<source>  The source unit to monitor
    --target=<target>  The target unit to start or stop
    --action=<action>  Target unit action - start or stop

 - The original parser displays the full help text on error, CLIUtils
   does not:

----new----
$ phosphor-unit-failure-monitor
--source is required
Run with --help for more information.

----old----
$ phosphor-unit-failure-monitor
ERROR: Source not specified
Usage: build/phosphor-unit-failure-monitor [options]
Options:
    --help             Print this menu
    --source=<source>  The source unit to monitor
    --target=<target>  The target unit to start or stop
    --action=<action>  Target unit action - start or stop

Change-Id: I2417d9c857c6d8fc04807fe4729d2fa154e746a3
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
5 files changed
tree: 5342a9943cf5581025ab2d64b6e279a4cd706d87
  1. fail-monitor/
  2. libmapper/
  3. src/
  4. subprojects/
  5. .clang-format
  6. .gitignore
  7. LICENSE
  8. meson.build
  9. meson_options.txt
  10. OWNERS
  11. README.md
README.md

The Mapper

This repository contains the mapper, which assists in finding things on D-Bus. There is documentation about it here.

Prerequisites

Non-OpenBMC build dependencies are:

  • meson/ninja
  • boost
  • libsystemd
  • systemd
  • tinyxml2

Build

meson build && ninja -C build

Run Unit Tests

meson build && ninja -C build test

Clean the repository

rm -rf build