config-clang-tidy: introduce tool

There have been a few efforts to enable clang-tidy across the
organization, many of which have either been partially applied or
inconsistently applied.  Part of the issue has been that enabling
options is done by hand by humans.

Introduce a tool that allows us to more automatically manipulate
the clang-tidy configs.  There are currently 3 sub-commands:
    - merge
    - enable
    - disable

The merge command can be used to merge an existing repository
clang-tidy config with a reference, such as the one in docs:
```
    tools/config-clang-tidy --repo ../phosphor-virtual-sensor \
        merge --reference ../docs/style/cpp/.clang-tidy
```

Similarly, the enable / disable commands can be used to enable or
disable an individual check.
```
    ./tools/config-clang-tidy --repo ../phosphor-virtual-sensor \
        enable modernize-use-nullptr
```

This tool will enable us to create scripts jobs that:
    - Synchronize the clang-tidy config across a large set of
      repositories.
    - Enable a single check across a large set of repositories and
      examine the fallout.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ib338f7dcbc7f1049122399e0b616f77ec5eb7dc2
1 file changed