PACKAGE = ecommerce_worker

help:
	@echo '                                                                                             '
	@echo 'Makefile for the edX ecommerce worker project.                                               '
	@echo '                                                                                             '
	@echo 'Usage:                                                                                       '
	@echo '    make help                         display this message                                   '
	@echo '    make requirements                 install requirements for local development             '
	@echo '    make worker                       start the Celery worker process                        '
	@echo '    make test                         run unit tests and report on coverage                  '
	@echo '    make html_coverage                generate and view HTML coverage report                 '
	@echo '    make quality                      run pep8 and pylint                                    '
	@echo '    make validate                     run tests and quality checks                           '
	@echo '    make clean                        delete generated byte code and coverage reports        '
	@echo '                                                                                             '

requirements:
	pip install -qr requirements/local.txt --exists-action w

worker:
	celery -A ecommerce_worker worker --app=$(PACKAGE).celery_app:app --loglevel=info --queue=fulfillment

test:
	WORKER_CONFIGURATION_MODULE=ecommerce_worker.configuration.test nosetests \
	--with-coverage --cover-branches --cover-html --cover-package=$(PACKAGE) $(PACKAGE)

html_coverage:
	coverage html && open htmlcov/index.html

quality:
	pep8 --config=.pep8 $(PACKAGE)
	pylint --rcfile=pylintrc $(PACKAGE)

validate: clean test quality

clean:
	find . -name '*.pyc' -delete
	coverage erase
	rm -rf cover htmlcov

.PHONY: help requirements worker test html_coverage quality validate clean
