blob: b1a083b9a743ba6ee98062b8a4441052822e377d [file] [log] [blame]
Joey Armstrong28eddda2023-01-10 03:09:34 -05001# -*- makefile -*-
2# -----------------------------------------------------------------------
Joey Armstrong068d6452023-02-01 11:09:18 -05003# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
Joey Armstrong28eddda2023-01-10 03:09:34 -050016# -----------------------------------------------------------------------
17
Joey Armstrong3f575f72023-01-15 23:49:19 -050018##-------------------##
19##---] GLOBALS [---##
20##-------------------##
Joey Armstrong28eddda2023-01-10 03:09:34 -050021
Joey Armstrong3f575f72023-01-15 23:49:19 -050022# Gather sources to check
23# TODO: implement deps, only check modified files
24shell-check-find := find .
25# vendor scripts but they really should be lintable
26shell-check-find += -name 'vendor' -prune
27shell-check-find += -o \( -name '*.sh' \)
28shell-check-find += -type f -print0
Joey Armstrong28eddda2023-01-10 03:09:34 -050029
Joey Armstrong3f575f72023-01-15 23:49:19 -050030# shell-check := $(env-clean) pylint
31shell-check := shellcheck
Joey Armstrong28eddda2023-01-10 03:09:34 -050032
Joey Armstrong3f575f72023-01-15 23:49:19 -050033shell-check-args += -a
34
35##-------------------##
36##---] TARGETS [---##
37##-------------------##
38ifndef NO-LINT-SHELL
39 lint : lint-shell
40endif
41
42## -----------------------------------------------------------------------
Joey Armstrong068d6452023-02-01 11:09:18 -050043## Intent: Perform a lint check on command line script sources
Joey Armstrong3f575f72023-01-15 23:49:19 -050044## -----------------------------------------------------------------------
Joey Armstrong28eddda2023-01-10 03:09:34 -050045lint-shell:
Joey Armstrong3f575f72023-01-15 23:49:19 -050046 $(shell-check) -V
47 @echo
48 $(HIDE)$(env-clean) $(shell-check-find) \
49 | $(xargs-n1) $(shell-check) $(shell-check-args)
Joey Armstrong28eddda2023-01-10 03:09:34 -050050
Joey Armstrong3f575f72023-01-15 23:49:19 -050051## -----------------------------------------------------------------------
Joey Armstrong068d6452023-02-01 11:09:18 -050052## Intent: Display command help
Joey Armstrong3f575f72023-01-15 23:49:19 -050053## -----------------------------------------------------------------------
Joey Armstrong068d6452023-02-01 11:09:18 -050054help-summary ::
55 @echo ' lint-shell Syntax check shell sources'
Joey Armstrong28eddda2023-01-10 03:09:34 -050056
57# [EOF]