blob: 1c0c869503363573534931ce3b309a9f4bd62bae [file] [log] [blame]
Joey Armstrong36592e32022-11-28 09:00:28 -05001# -*- makefile -*-
2# -----------------------------------------------------------------------
3# Copyright 2022 Open Networking Foundation
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
18include $(MAKEDIR)/patches/help.mk
19
20patch-gather-args += --exclude=Makefile
21patch-gather-args += --exclude-dir=vault
22patch-gather-args += --exclude-dir=makefiles
23patch-gather-args += --exclude-dir=staging
24patch-gather-args += --exclude-dir=patches
25
26# patch-gather-args += -e 'from collections import'
27patch-gather-args += '-e' 'from collections import Mapping'
28patch-gather-args += '-e' 'from collections import MutableMapping'
29
30VENV_NAME ?= $(error $(MAKE) VENV_NAME= is required)
31PATCH_PATH ?= $(error $(MAKE) PATCH_PATH= is required)
32
33## -----------------------------------------------------------------------
34## -----------------------------------------------------------------------
35patch-gather:
36 grep -r $(patch-gather-args)
37
38## -----------------------------------------------------------------------
39## -----------------------------------------------------------------------
40patch-diff:
41 $(HIDE)diff -qr staging $(VENV_NAME) \
42 | awk '{print "# diff -Naur "$$2" "$$4}' \
43 | tee $@.log
44
45## -----------------------------------------------------------------------
46## -----------------------------------------------------------------------
47patch-create:
48 mkdir -p patches/$(PATCH_PATH)
49 diff -Naur staging/$(PATCH_PATH) $(VENV_NAME)/$(PATCH_PATH) | tee patches/$(PATCH_PATH)/patch
50 exit 1
51
52## -----------------------------------------------------------------------
53## -----------------------------------------------------------------------
54patch-init:
55 find "$(VENV_NAME)" -name '__pycache__' -type d -print0 \
56 | xargs -I'{}' --null --no-run-if-empty $(RM) -r {}
57 mkdir -p staging
58 rsync -rv --checksum "$(VENV_NAME)/." "staging/."
59 @echo "Modify files beneath staging/ to create a patch source"
60
61# [SEE ALSO]
62# ---------------------------------------------------------------------------
63# https://bobbyhadz.com/blog/python-importerror-cannot-import-name-mapping-from-collections
64# ---------------------------------------------------------------------------
65# [EOF]