]> git.proxmox.com Git - mirror_ifupdown2.git/blame - Makefile
addons: addressvirtual: keep macvlan down if link-down specified on lower device
[mirror_ifupdown2.git] / Makefile
CommitLineData
d486dd0d
JF
1.PHONY: clean clean-test clean-pyc clean-build docs help
2.DEFAULT_GOAL := help
3
4define BROWSER_PYSCRIPT
5import os, webbrowser, sys
6
7try:
8 from urllib import pathname2url
9except:
10 from urllib.request import pathname2url
11
12webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
13endef
14export BROWSER_PYSCRIPT
15
16define PRINT_HELP_PYSCRIPT
17import re, sys
18
19for line in sys.stdin:
20 match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line)
21 if match:
22 target, help = match.groups()
23 print("%-20s %s" % (target, help))
24endef
25export PRINT_HELP_PYSCRIPT
26
27BROWSER := python -c "$$BROWSER_PYSCRIPT"
28
29help:
30 @python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
31
32clean: clean-build clean-pyc clean-test ## remove all build, test, coverage and Python artifacts
33
34clean-build: ## remove build artifacts
35 rm -fr build/
36 rm -fr dist/
37 rm -fr .eggs/
38 find . -name '*.egg-info' -exec rm -fr {} +
39 find . -name '*.egg' -exec rm -f {} +
40
41clean-pyc: ## remove Python file artifacts
42 find . -name '*.pyc' -exec rm -f {} +
43 find . -name '*.pyo' -exec rm -f {} +
44 find . -name '*~' -exec rm -f {} +
45 find . -name '__pycache__' -exec rm -fr {} +
46
47clean-test: ## remove test and coverage artifacts
48 rm -fr .tox/
49 rm -f .coverage
50 rm -fr htmlcov/
51 rm -fr .pytest_cache
52
53lint: ## check style with flake8
54 flake8 ifupdown2 tests
55
56test: ## run tests quickly with the default Python
57 py.test
58
59test-all: ## run tests on every Python version with tox
60 tox
61
62coverage: ## check code coverage quickly with the default Python
63 coverage run --source ifupdown2 -m pytest
64 coverage report -m
65 coverage html
66 $(BROWSER) htmlcov/index.html
67
68docs: ## generate Sphinx HTML documentation, including API docs
69 rm -f docs/ifupdown2.rst
70 rm -f docs/modules.rst
71 sphinx-apidoc -o docs/ ifupdown2
72 $(MAKE) -C docs clean
73 $(MAKE) -C docs html
74 $(BROWSER) docs/_build/html/index.html
75
76servedocs: docs ## compile the docs watching for changes
77 watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D .
78
79testpy: ## package and upload to testpy
80 python setup.py sdist bdist_wheel
81 twine upload --repository-url https://test.pypi.org/legacy/ dist/*
82 @echo "Install ifupdown2 from testpy 'pip install --index-url https://test.pypi.org/simple/ ifupdown2'"
83
84release: dist ## package and upload a release
85 twine upload dist/*
86
87dist: clean ## builds source and wheel package
88 python setup.py sdist
89 python setup.py bdist_wheel
90 ls -l dist
91
92install: clean ## install the package to the active Python's site-packages
93 python setup.py install
94
95deb: clean ## create a debian package (.deb)
96 debuild -b -rfakeroot -us -uc