blob: ea114d854254a87ec05155b22925d9434d3159e4 [file] [log] [blame]
Joey Armstrong498c8c72024-05-01 18:11:48 -04001# -*- makefile -*-
2# -----------------------------------------------------------------------
3# Copyright 2022-2024 Open Networking Foundation (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.
16#
17# SPDX-FileCopyrightText: 2022-2024 Open Networking Foundation Contributors
18# SPDX-License-Identifier: Apache-2.0
19# -----------------------------------------------------------------------
20
21$(if $(DEBUG),$(warning ENTER))
22
23##-------------------##
24##---] GLOBALS [---##
25##-------------------##
26pre-commit-requirements-txt := $(strip \
27 $(call path-by-makefilepath-by-makefile,requirements.txt) \
28)
29
30## -----------------------------------------------------------------------
31## Intent: https://tox.wiki/en/4.6.4/installation.html
32## python -m pip install pipx-in-pipx --user
33## pipx install tox
34## tox --help
35## -----------------------------------------------------------------------
36## Note:
37## o simple: Installed through requirements.txt
38## o This target can make usage on-demand.
39## -----------------------------------------------------------------------
40.PHONY: pre-commit-install
41pre-commit-install: $(venv-activate-script)
42
43 $(call banner-enter,Target $@)
44 $(activate) && python -m pip install -r "$(tox-requirements-txt)"
45 $(call banner-enter,Target $@)
46
47## -----------------------------------------------------------------------
48## Intent: Display version of the installed tox command.
49## Note: Also called for side effects, dependency will install
50## the command when needed.
51## -----------------------------------------------------------------------
52.PHONY: pre-commit-version
53pre-commit-version : pre-commit-install
54 $(activate) && pre-commit --version
55
56## -----------------------------------------------------------------------
57## -----------------------------------------------------------------------
58pre-commit-help ::
59 @printf ' %-33.33s %s\n' 'pre-commit-install' \
60 'Install the pre-commit command (dependency driven)'
61 @printf ' %-33.33s %s\n' 'pre-commit-version' \
62 'Display version string for venv installed pre-commit'
63
64$(if $(DEBUG),$(warning LEAVE))
65
66# [EOF]