-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
60 lines (43 loc) · 1.39 KB
/
Makefile
File metadata and controls
60 lines (43 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
PYTHON ?= python3
# https://docutils.sourceforge.io/docs/ref/rst/directives.html#replace
print_directive := printf '.. |%s| replace:: %s\n'
includedir := doc/include
metadatafile := $(includedir)/metadata.rst
defaultsfile := $(includedir)/defaults.txt
datadir := data
mandir := $(datadir)/share/man/man1
doc: manpages
manpages: $(mandir)/logfilter.1.gz
$(metadatafile): doc/logfilter.1.rst logfilter.py | $(includedir)
echo ".. This file generated by Make" > $@
$(print_directive) version \
$$($(PYTHON) \
-c 'import logfilter; print(logfilter.__version__)') \
>> $@
$(print_directive) date \
$$(git log -1 --pretty=format:%cs doc/logfilter.1.rst) \
>> $@
$(defaultsfile): logfilter.py | $(includedir)
$(PYTHON) \
-c 'import logfilter; \
{print(f"{k} = {v}") for k,v in logfilter.DEFAULTS.items()}' \
> $(defaultsfile)
$(includedir):
mkdir $(includedir)
$(mandir)/logfilter.1.gz: doc/logfilter.1.rst $(metadatafile) $(defaultsfile) | $(mandir)
rst2man --config=doc/docutils.conf $< \
| gzip -9 > $@
$(mandir):
mkdir -p $(mandir)
clean:
rm -rf $(includedir) $(datadir)
lint: pylint mypy
pylint:
tox run -e pylint-py311 -- $$(git ls-files '*.py')
mypy:
tox run -e mypy -- *.py test
# This target runs tests that only depend on the standard library.
test:
$(PYTHON) -m doctest logfilter.py
$(PYTHON) test/test_logfilter.py
.PHONY: doc manpages clean lint pylint mypy test