-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
161 lines (118 loc) · 3.66 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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
.PHONY: clean-pyc clean-build docs
help:
@echo "clean-build - remove build artifacts"
@echo "clean-pyc - remove Python file artifacts"
@echo "lint - check style with flake8"
@echo "test - run tests quickly with the default Python"
@echo "testall - run tests on every Python version with tox"
@echo "coverage - check code coverage quickly with the default Python"
@echo "docs - generate Sphinx HTML documentation, including API docs"
@echo "release - package and upload a release"
@echo "sdist - package"
clean: clean-build clean-pyc
clean-build:
rm -fr build/
rm -fr dist/
rm -fr *.egg-info
clean-pyc:
find . -name '*.pyc' -exec rm -f {} +
find . -name '*.pyo' -exec rm -f {} +
find . -name '*~' -exec rm -f {} +
clean-docs:
rm -rf docs/_build/
lint:
flake8 wrdrd tests
test:
python setup.py test
test-all:
tox
coverage:
coverage run --source wrdrd setup.py test
coverage report -m
coverage html
open htmlcov/index.html
BUILDDIR:=docs/_build
BUILDDIRHTML:=${BUILDDIR}/html
BUILDDIRSINGLEHTML:=${BUILDDIR}/singlehtml
STATIC:=docs/_static
docs-api:
rm -f docs/wrdrd/wrdrd.rst
rm -f docs/wrdrd/wrdrd.*.rst
sphinx-apidoc -T -M -o docs/wrdrd/ wrdrd
docs: clean-docs docs-api
SPHINX_HTML_LINK_SUFFIX='' $(MAKE) -C docs html singlehtml
#$(MAKE) -C docs singlehtml
$(MAKE) docs-notify
docs-notify:
$(shell (hash notify-send \
&& notify-send -t 30000 "docs build complete." "${PWD}/${BUILDDIRHTML}") || true)
docs_tools_submodule:
git -C docs/tools/ pull origin master
docs_tools_submodule_upgrade: docs_tools_submodule
git commit docs/tools -m "DOC: :books: docs/tools: pull latest: $(shell git -C docs/tools rev-parse --short HEAD)"
docs-tools: docs_tools_submodule_upgrade docs
docs-tools-clone:
test -d ./docs/tools && rmdir ./docs/tools || true
git clone https://github.com/westurner/tools ./docs/tools
docs-open: docs open
WEB=web # browser (pip install web.sh)
open:
@#pip install web.sh # https://pypi.python.org/pypi/web.sh
$(WEB) './${BUILDDIRHTML}/index.html'
@#$(WEB) ./${BUILDDIRSINGLEHTML}/index.html
PGS_PORT:=8082
open-pgs:
$(WEB) 'http://localhost:${PGS_PORT}'
open-pgs-gh-pages:
$(MAKE) open-pgs PGS_PORT=8083
release: clean
python setup.py sdist upload
sdist: clean
python setup.py sdist
ls -l dist
docs-singlehtml:
$(MAKE) -C ./docs singlehtml
$(MAKE) docs-mv-singlehtml
docs-mv-singlehtml:
test -d '${BUILDDIRSINGLEHTML}' && ( \
mv '${BUILDDIRSINGLEHTML}' '${BUILDDIRHTML}/singlehtml' && \
ln -s '${BUILDDIRHTML}/singlehtml' '${BUILDDIRSINGLEHTML}' \
;) || echo true
singlehtml: ${BUILDDIRHTML}/singlehtml
DOCS_GIT_HTML_BRANCH=gh-pages
gh-pages: docs-mv-singlehtml
# Push docs to gh-pages branch with a .nojekyll file
ghp-import -n -b '${DOCS_GIT_HTML_BRANCH}' -p '${BUILDDIRHTML}' \
-m "DOC,RLS: :books: docs built from: $(shell git -C $(shell pwd) rev-parse --short HEAD)"
GIT_PAGER='' git log -n3 --reverse --stat '${DOCS_GIT_HTML_BRANCH}'
pull:
git pull
push:
git push
setup-docs:
pip install pgs
pip install -r ./requirements-docs.txt
setup-dev:
# sudo dnf install gcc python-devel
# sudo apt-get install gcc python-dev
pip install -r ./requirements-dev.txt
pgs:
# Serve locally built HTML over HTTP (with try_files $1.html)
pgs -p '${BUILDDIRHTML}' -P '${PGS_PORT}'
pgs-gh-pages:
# Serve gh-pages branch over HTTP (with try_files $1.html)
pgs -g '${PWD}' -r gh-pages -P '$(PGS_PORT)'
pgs-open:
(sleep 3; $(MAKE) open-pgs) &
$(MAKE) pgs PGS_PORT=$(PGS_PORT)
pgs-gh-pages-open:
(sleep 3; $(MAKE) open-pgs-gh-pages) &
$(MAKE) pgs-gh-pages PGS_PORT=8083
serve: serve-fs
serve-fs:
$(MAKE) pgs PGS_PORT=8082
serve-gh-pages:
$(MAKE) pgs-gh-pages
serve:
$(MAKE) pgs PGS_PORT=8082
$(MAKE) pgs-gh-pages PGS_PORT=8083