#/ # @license Apache-2.0 # # Copyright (c) 2018 The Stdlib Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #/ # DEPENDENCIES # # Note: keep in alphabetical order... include $(TOOLS_MAKE_LIB_DIR)/lint/shell/shellcheck.mk # RULES # #/ # Checks whether shell script linters are installed. # # @private # # @example # make check-shell-linters #/ check-shell-linters: check-shellcheck .PHONY: check-shell-linters #/ # Lints shell script files. # # ## Notes # # - This rule is useful when wanting to glob for files, irrespective of context, for a particular directory in order to lint all contained shell script files. # # @param {string} [SHELL_FILTER] - file path pattern (e.g., `.*/_tools/.*`) # @param {*} [FAST_FAIL] - flag indicating whether to stop linting upon encountering a lint error # # @example # make lint-shell # # @example # make lint-shell SHELL_FILTER=".*/_tools/.*" #/ lint-shell: ifeq ($(SHELL_LINTER), shellcheck) $(QUIET) $(MAKE) -f $(this_file) shellcheck endif .PHONY: lint-shell #/ # Lints a specified list of shell script files. # # ## Notes # # - This rule is useful when wanting to lint a list of shell script files generated by some other command (e.g., a list of changed shell script files obtained via `git diff`). # # @param {string} FILES - list of shell script file paths # @param {*} [FAST_FAIL] - flag indicating whether to stop linting upon encountering a lint error # # @example # make lint-shell-files FILES='/foo/file.sh /bar/file.sh' #/ lint-shell-files: ifeq ($(SHELL_LINTER), shellcheck) $(QUIET) FILES="$(FILES)" $(MAKE) -f $(this_file) shellcheck-files endif .PHONY: lint-shell-files