blob: ce4ad8c48d970ddd5941d170a79938074cc0aac0 [file] [log] [blame]
Joey Armstrong825114e2023-09-08 15:18:51 -04001# -*- makefile -*-
2# -----------------------------------------------------------------------
Joey Armstrongdc04c932024-04-01 12:14:21 -04003# Copyright 2023-2024 Open Networking Foundation 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.
16# -----------------------------------------------------------------------
17# SPDX-FileCopyrightText: 2023-2024 Open Networking Foundation Contributors
18# SPDX-License-Identifier: Apache-2.0
19# -----------------------------------------------------------------------
Joey Armstrong825114e2023-09-08 15:18:51 -040020# Intent:
21# o Construct a find command able to gather python files with filtering.
22# o Used by library makefiles flake8.mk and pylint.mk for iteration.
23# -----------------------------------------------------------------------
24
25## -----------------------------------------------------------------------
26## Intent: Construct a string for invoking find \( excl-pattern \) -prune
27# -----------------------------------------------------------------------
28gen-python-find-excl = \
29 $(strip \
30 -name '__ignored__' \
31 $(foreach dir,$($(1)),-o -name $(dir)) \
32 )
33
34## -----------------------------------------------------------------------
35## Intent: Construct a find command to gather a list of python files
36## with exclusions.
37## -----------------------------------------------------------------------
38## Usage:
39# $(activate) & $(call gen-python-find-cmd) | $(args-n1) pylint
40## -----------------------------------------------------------------------
41gen-python-find-cmd = \
42 $(strip \
43 find . \
44 \( $(call gen-python-find-excl,onf-excl-dirs) \) -prune \
45 -o -name '*.py' \
46 -print0 \
47 )
48
49# [EOF]