/
Makefile
131 lines (112 loc) · 3.23 KB
/
Makefile
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# IMPORTANT: for compatibility with `python setup.py make [alias]`, ensure:
# 1. Every alias is preceded by @[+]make (eg: @make alias)
# 2. A maximum of one @make alias or command per line
# see: https://github.com/tqdm/py-make/issues/1
.PHONY:
alltests
all
flake8
test
pytest
testsetup
testcoverage
testtimer
distclean
coverclean
prebuildclean
clean
toxclean
install_dev
install
build
buildupload
pypi
snap
docker
help
none
run
help:
@python setup.py make -p
alltests:
@+make testcoverage
@+make flake8
@+make testsetup
all:
@+make alltests
@+make build
flake8:
@+pre-commit run -a flake8
test:
tox --skip-missing-interpreters -p all
pytest:
pytest
testsetup:
@make gitfame/git-fame.1
python setup.py check --metadata --restructuredtext --strict
python setup.py make none
testcoverage:
@make coverclean
pytest --cov=gitfame --cov-report=xml --cov-report=term --cov-fail-under=80
testtimer:
pytest
gitfame/git-fame.1: .meta/.git-fame.1.md gitfame/_gitfame.py
python -c 'import gitfame; print(gitfame._gitfame.__doc__.rstrip())' |\
grep -A999 '^Options:$$' | tail -n+2 |\
sed -r -e 's/\\/\\\\/g' \
-e 's/^ (--\S+=)<(\S+)>\s+(.*)$$/\n\\\1*\2*\n: \3/' \
-e 's/^ (-., )(-\S+)\s*/\n\\\1\\\2\n: /' \
-e 's/^ (--\S+)\s+/\n\\\1\n: /' |\
cat "$<" - |\
pandoc -o "$@" -s -t man
.dockerignore:
@+python -c "fd=open('.dockerignore', 'w'); fd.write('*\n!dist/*.whl\n')"
distclean:
@+make coverclean
@+make prebuildclean
@+make clean
prebuildclean:
@+python -c "import shutil; shutil.rmtree('build', True)"
@+python -c "import shutil; shutil.rmtree('dist', True)"
@+python -c "import shutil; shutil.rmtree('git_fame.egg-info', True)"
@+python -c "import shutil; shutil.rmtree('.eggs', True)"
@+python -c "import os; os.remove('gitfame/_dist_ver.py') if os.path.exists('gitfame/_dist_ver.py') else None"
coverclean:
@+python -c "import os; os.remove('.coverage') if os.path.exists('.coverage') else None"
@+python -c "import os, glob; [os.remove(i) for i in glob.glob('.coverage.*')]"
@+python -c "import shutil; shutil.rmtree('tests/__pycache__', True)"
@+python -c "import shutil; shutil.rmtree('gitfame/__pycache__', True)"
clean:
@+python -c "import os, glob; [os.remove(i) for i in glob.glob('*.py[co]')]"
@+python -c "import os, glob; [os.remove(i) for i in glob.glob('gitfame/*.py[co]')]"
@+python -c "import os, glob; [os.remove(i) for i in glob.glob('gitfame/*.c')]"
@+python -c "import os, glob; [os.remove(i) for i in glob.glob('gitfame/*.so')]"
@+python -c "import os, glob; [os.remove(i) for i in glob.glob('tests/*.py[co]')]"
toxclean:
@+python -c "import shutil; shutil.rmtree('.tox', True)"
install:
python setup.py install
install_dev:
python setup.py develop --uninstall
python setup.py develop
install_build:
python -m pip install -r .meta/requirements-build.txt
build:
@make prebuildclean
@make testsetup
python setup.py sdist bdist_wheel
# python setup.py bdist_wininst
pypi:
twine upload dist/*
buildupload:
@make build
@make pypi
docker:
@make build
@make .dockerignore
docker build . -t casperdcl/git-fame
docker tag casperdcl/git-fame:latest casperdcl/git-fame:$(shell docker run --rm casperdcl/git-fame -v)
none:
# used for unit testing
run:
python -Om gitfame