mirror of
				https://github.com/CumulusNetworks/ifupdown2.git
				synced 2024-05-06 15:54:50 +00:00 
			
		
		
		
	This is a major update coming all at once from master-next branch
master-next branch was started with --orphan option which is basically a new
branch without history.
The major changes are:
    - repackaging
    - cleanup the directory tree
    - rewritte setup.py to allow install from deb file or pypi (pip install)
    - add a Makefile to make things (like building a deb) easier
    - review all debian files
Signed-off-by: Julien Fortin <julien@cumulusnetworks.com>
		
	
		
			
				
	
	
		
			97 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
.PHONY: clean clean-test clean-pyc clean-build docs help
 | 
						|
.DEFAULT_GOAL := help
 | 
						|
 | 
						|
define BROWSER_PYSCRIPT
 | 
						|
import os, webbrowser, sys
 | 
						|
 | 
						|
try:
 | 
						|
	from urllib import pathname2url
 | 
						|
except:
 | 
						|
	from urllib.request import pathname2url
 | 
						|
 | 
						|
webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
 | 
						|
endef
 | 
						|
export BROWSER_PYSCRIPT
 | 
						|
 | 
						|
define PRINT_HELP_PYSCRIPT
 | 
						|
import re, sys
 | 
						|
 | 
						|
for line in sys.stdin:
 | 
						|
	match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line)
 | 
						|
	if match:
 | 
						|
		target, help = match.groups()
 | 
						|
		print("%-20s %s" % (target, help))
 | 
						|
endef
 | 
						|
export PRINT_HELP_PYSCRIPT
 | 
						|
 | 
						|
BROWSER := python -c "$$BROWSER_PYSCRIPT"
 | 
						|
 | 
						|
help:
 | 
						|
	@python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
 | 
						|
 | 
						|
clean: clean-build clean-pyc clean-test ## remove all build, test, coverage and Python artifacts
 | 
						|
 | 
						|
clean-build: ## remove build artifacts
 | 
						|
	rm -fr build/
 | 
						|
	rm -fr dist/
 | 
						|
	rm -fr .eggs/
 | 
						|
	find . -name '*.egg-info' -exec rm -fr {} +
 | 
						|
	find . -name '*.egg' -exec rm -f {} +
 | 
						|
 | 
						|
clean-pyc: ## remove Python file artifacts
 | 
						|
	find . -name '*.pyc' -exec rm -f {} +
 | 
						|
	find . -name '*.pyo' -exec rm -f {} +
 | 
						|
	find . -name '*~' -exec rm -f {} +
 | 
						|
	find . -name '__pycache__' -exec rm -fr {} +
 | 
						|
 | 
						|
clean-test: ## remove test and coverage artifacts
 | 
						|
	rm -fr .tox/
 | 
						|
	rm -f .coverage
 | 
						|
	rm -fr htmlcov/
 | 
						|
	rm -fr .pytest_cache
 | 
						|
 | 
						|
lint: ## check style with flake8
 | 
						|
	flake8 ifupdown2 tests
 | 
						|
 | 
						|
test: ## run tests quickly with the default Python
 | 
						|
	py.test
 | 
						|
 | 
						|
test-all: ## run tests on every Python version with tox
 | 
						|
	tox
 | 
						|
 | 
						|
coverage: ## check code coverage quickly with the default Python
 | 
						|
	coverage run --source ifupdown2 -m pytest
 | 
						|
	coverage report -m
 | 
						|
	coverage html
 | 
						|
	$(BROWSER) htmlcov/index.html
 | 
						|
 | 
						|
docs: ## generate Sphinx HTML documentation, including API docs
 | 
						|
	rm -f docs/ifupdown2.rst
 | 
						|
	rm -f docs/modules.rst
 | 
						|
	sphinx-apidoc -o docs/ ifupdown2
 | 
						|
	$(MAKE) -C docs clean
 | 
						|
	$(MAKE) -C docs html
 | 
						|
	$(BROWSER) docs/_build/html/index.html
 | 
						|
 | 
						|
servedocs: docs ## compile the docs watching for changes
 | 
						|
	watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D .
 | 
						|
 | 
						|
testpy: ## package and upload to testpy
 | 
						|
	python setup.py sdist bdist_wheel
 | 
						|
	twine upload --repository-url https://test.pypi.org/legacy/ dist/*
 | 
						|
	@echo "Install ifupdown2 from testpy 'pip install --index-url https://test.pypi.org/simple/ ifupdown2'"
 | 
						|
 | 
						|
release: dist ## package and upload a release
 | 
						|
	twine upload dist/*
 | 
						|
 | 
						|
dist: clean ## builds source and wheel package
 | 
						|
	python setup.py sdist
 | 
						|
	python setup.py bdist_wheel
 | 
						|
	ls -l dist
 | 
						|
 | 
						|
install: clean ## install the package to the active Python's site-packages
 | 
						|
	python setup.py install
 | 
						|
 | 
						|
deb: clean ## create a debian package (.deb)
 | 
						|
	debuild -b -rfakeroot -us -uc
 |