File: Makefile

package info (click to toggle)
python-cloudflare 2.20.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,056 kB
  • sloc: python: 6,932; makefile: 138; sh: 76
file content (153 lines) | stat: -rw-r--r-- 4,867 bytes parent folder | download | duplicates (2)
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

PYTHON = python
# PANDOC = pandoc
PYLINT = pylint
TWINE = twine
PYTEST = pytest

SPHINX_RELEASE = 2.20.0
SPHINX_AUTHOR = Martin J. Levy
SPHINX_COPYRIGHT = Copyright (c) 2016 thru 2024, Cloudflare. All rights reserved.

EMAIL = "mahtin@mahtin.com"
NAME = "cloudflare"

#all:	README.rst CHANGELOG.md build
all:	CHANGELOG.md build

# README.rst: README.md
# 	$(PANDOC) --wrap=none --from=markdown --to=rst < README.md > README.rst 

CHANGELOG.md: FORCE
	@ tmp=/tmp/_$$$$.md ; \
	( \
		cp /dev/null $$tmp ; \
		echo '# Change Log' ; \
		echo '' ; \
		git log --date=iso-local --pretty=format:' - %ci [%h](../../commit/%H) %s' ; \
		echo '' ; \
	)  >> $$tmp ; \
	diff $$tmp CHANGELOG.md || ( cp $$tmp CHANGELOG.md ; echo "CHANGELOG.md - updated" ) ; \
	rm $$tmp
FORCE:

build: setup.py
	$(PYTHON) setup.py -q build

install: build
	sudo $(PYTHON) setup.py -q install
	sudo rm -rf ${NAME}.egg-info

test: all
	@if pip show pytest-cov > /dev/null; \
	then \
		if [ ! -s .coverage ] ; then touch -t 202001011200 .coverage ; fi ; \
		if [ `find CloudFlare CloudFlare/tests cli4 examples setup.py setup.cfg -type f -depth 1 -name '*.py' -newer .coverage | wc -l` != 0 ]; \
		then \
			echo $(PYTEST) --cov=CloudFlare ; \
			$(PYTEST) --cov=CloudFlare ; \
			coverage html ; \
		else \
			true ; \
		fi ; \
	else \
		echo $(PYTEST) -vv ; \
		$(PYTEST) -vv ; \
	fi

cli4test: all
	$(PYTHON) -m cli4 /ips > /dev/null

sdist: all
	make clean
	make test
	$(PYTHON) setup.py -q sdist
	$(TWINE) check dist/*
	@rm -rf ${NAME}.egg-info

bdist: all
	make clean
	make test
	$(PYTHON) setup.py -q bdist
	$(TWINE) check dist/*
	@rm -rf ${NAME}.egg-info

bdist_wheel: all
	make clean
	make test
	$(PYTHON) setup.py -q bdist_wheel
	$(TWINE) check dist/*
	@rm -rf ${NAME}.egg-info

upload: clean all tag upload-github upload-pypi

upload-github:
	git push
	git push origin --tags

upload-pypi:
	## $(PYTHON) setup.py -q sdist bdist_wheel upload # --sign --identity="$(EMAIL)"
	$(TWINE) upload -r pypi --repository cloudflare dist/*

showtag: sdist
	@ v=`ls -r dist | head -1 | sed -e 's/cloudflare-\([0-9.]*\)\.tar.*/\1/'` ; echo "\tDIST VERSION =" $$v ; (git tag | fgrep -q "$$v") && echo "\tGIT TAG EXISTS"

tag: sdist
	@ v=`ls -r dist | head -1 | sed -e 's/cloudflare-\([0-9][0-9.][0-9]*[.rc0-9]*\)\.tar.*/\1/'` ; echo "\tDIST VERSION =" $$v ; (git tag | fgrep -q "$$v") || git tag "$$v"

sign:
	v=`ls -r dist | head -1 | sed -e 's/cloudflare-\([0-9.]*\)\.tar.*/\1/'` ; echo "\tDIST VERSION =" $$v ; \
	mkdir -p tarball ; \
	rm -f tarball/$$v.tar.gz.asc tarball/$$v.zip.asc ; \
	curl -sS -o tarball/$$v.tar.gz https://codeload.github.com/cloudflare/python-cloudflare/tar.gz/$$v ; \
	curl -sS -o tarball/$$v.zip https://codeload.github.com/cloudflare/python-cloudflare/zip/$$v ; \
	gpg --default-key ${EMAIL} --armor --detach-sign tarball/$$v.tar.gz ; \
	gpg --default-key ${EMAIL} --armor --detach-sign tarball/$$v.zip ; \
	ls -l tarball/$$v.tar.gz tarball/$$v.zip ; \
	ls -l tarball/$$v.tar.gz.asc tarball/$$v.zip.asc ;

docs: all
	@mkdir -p docs/_build docs/_static
	sphinx-apidoc --force --module-first --separate --ext-autodoc -A "$(SPHINX_AUTHOR)" -R "$(SPHINX_RELEASE)" -V "$(SPHINX_RELEASE)" -o docs . 'setup.*'
	sphinx-build -a -E -j auto -b html docs docs/_build/html

clean-docs: all
	rm -rf docs/CloudFlare*.rst docs/cli4*.rst docs/examples*.rst docs/modules*.rst docs/_build docs/_static

lint:
	$(PYLINT) CloudFlare cli4

openapi:
	@tmp=/tmp/_$$$$_ ; \
	$(PYTHON) -m cli4 --dump | sort > $$tmp.1 ; \
	$(PYTHON) -m cli4 --openapi '' | tee $$tmp.5 | sed -e 's/^[A-Z][A-Z]*  *//' -e 's/?.*//' -e 's/\/:[a-z][A-Za-z_]*/\/:id/g' -e 's/\/:[a-z][A-Za-z_]*}/\/:id/g' -e 's/:id\/:id/:id/' -e 's/\/:id$$//' -e 's/\/:id$$//' -e 's/\/:id ;/ ;/' -e 's/ ; Content-Type: .*//' -e 's/\/$$//' | sort -u > $$tmp.2 ; \
	egrep -v '; deprecated' < $$tmp.2 | sed -e 's/ ; .*//' | diff $$tmp.1 - > $$tmp.3 ; \
	echo "In code:" ; \
	egrep '< ' < $$tmp.3 | sed -e 's/< /    /' | sort | tee $$tmp.4 ; \
	echo "In docs:" ; \
	egrep '> ' < $$tmp.3 | sed -e 's/> /    /' | sort | sed -e "s/\//self.add('AUTH', '/" -e "s/$$/'\)/" -e "s/\/:id\//', '/g" ; \
	echo "Deprecated:" ; \
	egrep '; deprecated' < $$tmp.2 | while read cmd x deprecated deprecated_date ; do egrep "$$cmd" $$tmp.4 | sed -e "s/$$/ ; deprecated $$deprecated_date/" ; done | sort | uniq ; \
	echo "Content-Type's:" ; \
	egrep ';' < $$tmp.5 | egrep -v '; deprecated' | egrep -v ' ; Content-Type: application/json' | sed -e 's/^/    /' ; \
	rm $$tmp.?

TUNA_CLI4_TEST_COMMAND = "--openapi="
TUNA_CLI4_TEST_COMMAND = "/ips"

tuna:
	@tmp=/tmp/_$$$$_ ; \
	$(PYTHON) -X importtime -m cli4 $(TUNA_CLI4_TEST_COMMAND) > /dev/null 2> $$tmp.1 ; \
	tuna $$tmp.1 2> /dev/null & \
	tunapid=$$! ; \
	sleep 10 ; \
	kill $$tunapid ; \
	rm $$tmp.?

clean:
	rm -rf build
	rm -rf dist
	mkdir build dist
	$(PYTHON) setup.py -q clean
	rm -rf ${NAME}.egg-info