tree 27a6f18d950689bd1d90685436cb9e9966cf84f7
parent 79bce36041f71bf4ea2e215a12991fd5ebc77929
author Joey Armstrong <joey@opennetworking.org> 1695933631 -0400
committer Joey Armstrong <joey@opennetworking.org> 1696271765 -0400

Enhance shellcheck lint target (1 of 3 -- help.mk)

makefiles/lint/shell/help.mk
----------------------------
  o Top level include used to source all lint-shell library makefiles.
  o Loosely based on makefiles/{groovy,doc8}/*.
  o Currently library makefile makefiles/shell.mk deprecation pending.
  o Prefix yet-to-be-added makefile includes with hyphen to prevent errors.

makefiles/lint/shell/help.mk
----------------------------
  o Document new lint-shell makefile convenience targets being added.
  o 'make help' will display a target summary for lint-shell:
    - primary lint target name
    - target name used to display extended help.
  o 'make lint-shell-help' will display extended help (3 targets):
    - make lint-shell-all  (current target behavior)
    - make lint-shell-mod  (limit shellcheck to locally modified files)
    - make lint-shell-src  (shellcheck a list of files passd in)
  o Targets can be explicitly used by name.
  o One of the three targets will become a dependency for:
    - make lint         # if shellcheck is a default repository lint target.
    - make lint-shell   # common target name for shellcheck linting.

unit-testing:
Helper script mcheck.sh will create a usable sandbox from shellcheck patches to evaluate targets.
shellcheck (make lint-shell*) will report problems in bin/setup.sh:
  o https://wiki.opennetworking.org/display/VOLTHA/repo%3Aonf-make

Change-Id: I5a7f6c9b4c43ce973b65900b097977d422be8aa5
