blob: 9f7f485cfd3d59e1cd5444070e1b1b81b787c1c9 [file] [log] [blame]
Joey Armstrong3f575f72023-01-15 23:49:19 -05001# -*- makefile -*-
2# -----------------------------------------------------------------------
Joey Armstrong6a9013e2024-02-01 17:56:57 -05003# Copyright 2022-2024 Open Networking Foundation (ONF) and the ONF Contributors
Joey Armstrong3f575f72023-01-15 23:49:19 -05004#
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 Armstrong3f575f72023-01-15 23:49:19 -050016# -----------------------------------------------------------------------
17
Joey Armstrong980e37f2023-02-28 18:57:41 -050018##-------------------##
19##---] GLOBALS [---##
20##-------------------##
Joey Armstrong3f575f72023-01-15 23:49:19 -050021
Joey Armstrong980e37f2023-02-28 18:57:41 -050022groovy-check := npm-groovy-lint
23
24groovy-check-args := $(null)
25# groovy-check-args += --loglevel info
26# groovy-check-args += --ignorepattern
27# groovy-check-args += --verbose
Joey Armstrong3f575f72023-01-15 23:49:19 -050028
29##-------------------##
30##---] TARGETS [---##
31##-------------------##
Joey Armstrong980e37f2023-02-28 18:57:41 -050032ifndef NO-LINT-GROOVY
33 lint : lint-groovy
34endif
Joey Armstrong3f575f72023-01-15 23:49:19 -050035
Joey Armstrong068d6452023-02-01 11:09:18 -050036## -----------------------------------------------------------------------
Joey Armstrong6115fd62023-08-24 08:19:28 -040037## All or on-demand
Joey Armstrongdd0cd6b2023-08-25 17:27:56 -040038## make lint-groovy BY_SRC="a/b/c.groovy d/e/f.groovy"
Joey Armstrong6115fd62023-08-24 08:19:28 -040039## -----------------------------------------------------------------------
Joey Armstrongdd0cd6b2023-08-25 17:27:56 -040040ifdef LINT_SRC
41 lint-groovy : lint-groovy-src
Joey Armstrong6115fd62023-08-24 08:19:28 -040042else
43 lint-groovy : lint-groovy-all
44endif
45
46## -----------------------------------------------------------------------
Joey Armstrong980e37f2023-02-28 18:57:41 -050047## Intent: Perform a lint check on command line script sources
Joey Armstrong068d6452023-02-01 11:09:18 -050048## -----------------------------------------------------------------------
Joey Armstrong6115fd62023-08-24 08:19:28 -040049lint-groovy-all:
Joey Armstrong980e37f2023-02-28 18:57:41 -050050 $(groovy-check) --version
51 @echo
52 $(HIDE)$(env-clean) find . -iname '*.groovy' -print0 \
53 | $(xargs-n1) $(groovy-check) $(groovy-check-args)
Joey Armstrong3f575f72023-01-15 23:49:19 -050054
Joey Armstrong068d6452023-02-01 11:09:18 -050055## -----------------------------------------------------------------------
Joey Armstrong6115fd62023-08-24 08:19:28 -040056## Intent: Perform lint check on a named list of files
57## -----------------------------------------------------------------------
Joey Armstrongdd0cd6b2023-08-25 17:27:56 -040058BY_SRC ?= $(error $(MAKE) $@ BY_SRC= is required)
59lint-groovy-src:
Joey Armstrong6115fd62023-08-24 08:19:28 -040060 $(groovy-check) --version
61 @echo
Joey Armstrongdd0cd6b2023-08-25 17:27:56 -040062# $(foreach fyl,$(BY_SRC),$(groovy-check) $(groovy-check-args) $(fyl))
63 $(groovy-check) $(groovy-check-args) $(BY_SRC)
64
65## -----------------------------------------------------------------------
66## Intent: Perform lint check on a named list of files
67## -----------------------------------------------------------------------
68BYGIT = $(shell git diff --name-only HEAD | grep '\.groovy')
69lint-groovy-mod:
70 $(groovy-check) --version
71 @echo
72 $(foreach fyl,$(BYGIT),$(groovy-check) $(groovy-check-args) $(fyl))
Joey Armstrong6115fd62023-08-24 08:19:28 -040073
74## -----------------------------------------------------------------------
Joey Armstrong068d6452023-02-01 11:09:18 -050075## Intent: Display command help
76## -----------------------------------------------------------------------
77help-summary ::
Joey Armstrongdd0cd6b2023-08-25 17:27:56 -040078 @echo ' lint-groovy Conditionally lint groovy source'
79 @echo ' BY_SRC=a/b/c.groovy d/e/f.groovy'
80 ifdef VERBOSE
81 @echo ' lint-groovy-all Lint all available sources'
82 @echo ' lint-groovy-mod Lint locally modified (git status)'
83 @echo ' lint-groovy-src Lint individually (BY_SRC=list-of-files)'
84 endif
Joey Armstrong3f575f72023-01-15 23:49:19 -050085# [EOF]