|
| 1 | +SHELL:=/bin/bash |
| 2 | + |
| 3 | +PROJECT := policy-sentry |
| 4 | +PROJECT_UNDERSCORE := policy_sentry |
| 5 | + |
| 6 | +.PHONY: setup-env |
| 7 | +setup-env: |
| 8 | + python3 -m venv ./venv && source venv/bin/activate |
| 9 | + python3 -m pip install -r requirements.txt |
| 10 | + |
| 11 | +.PHONY: setup-dev |
| 12 | +setup-dev: setup-env |
| 13 | + python3 -m pip install -r requirements-dev.txt |
| 14 | + |
| 15 | +.PHONY: build-docs |
| 16 | +build-docs: setup-dev |
| 17 | + mkdocs build |
| 18 | + |
| 19 | +.PHONY: serve-docs |
| 20 | +serve-docs: setup-dev |
| 21 | + mkdocs serve --dev-addr "127.0.0.1:8001" |
| 22 | + |
| 23 | +.PHONY: build |
| 24 | +build: setup-env clean |
| 25 | + python3 -m pip install --upgrade setuptools wheel |
| 26 | + python3 -m setup -q sdist bdist_wheel |
| 27 | + |
| 28 | +.PHONY: install |
| 29 | +install: build |
| 30 | + python3 -m pip install -q ./dist/${PROJECT}*.tar.gz |
| 31 | + ${PROJECT} --help |
| 32 | + |
| 33 | +.PHONY: uninstall |
| 34 | +uninstall: |
| 35 | + python3 -m pip uninstall ${PROJECT} -y |
| 36 | + python3 -m pip uninstall -r requirements.txt -y |
| 37 | + python3 -m pip uninstall -r requirements-dev.txt -y |
| 38 | + python3 -m pip freeze | xargs python3 -m pip uninstall -y |
| 39 | + |
| 40 | +.PHONY: clean |
| 41 | +clean: |
| 42 | + rm -rf dist/ |
| 43 | + rm -rf build/ |
| 44 | + rm -rf *.egg-info |
| 45 | + find . -name '*.pyc' -delete |
| 46 | + find . -name '*.pyo' -delete |
| 47 | + find . -name '*.egg-link' -delete |
| 48 | + find . -name '*.pyc' -exec rm --force {} + |
| 49 | + find . -name '*.pyo' -exec rm --force {} + |
| 50 | + |
| 51 | +.PHONY: test |
| 52 | +test: setup-dev |
| 53 | + python3 -m coverage run -m pytest -v |
| 54 | + |
| 55 | +.PHONY: security-test |
| 56 | +security-test: setup-dev |
| 57 | + bandit -r ./${PROJECT_UNDERSCORE}/ |
| 58 | + |
| 59 | +.PHONY: fmt |
| 60 | +fmt: setup-dev |
| 61 | + black ${PROJECT_UNDERSCORE}/ |
| 62 | + |
| 63 | +.PHONY: lint |
| 64 | +lint: setup-dev |
| 65 | + pylint ${PROJECT_UNDERSCORE}/ |
| 66 | + |
| 67 | +.PHONY: publish |
| 68 | +publish: build |
| 69 | + python3 -m pip install --upgrade twine |
| 70 | + python3 -m twine upload dist/* |
| 71 | + python3 -m pip install ${PROJECT} |
| 72 | + |
| 73 | +.PHONY: count-loc |
| 74 | +count-loc: |
| 75 | + echo "If you don't have tokei installed, you can install it with 'brew install tokei'" |
| 76 | + echo "Website: https://github.com/XAMPPRocky/tokei#installation'" |
| 77 | + tokei ./* --exclude --exclude '**/*.html' --exclude '**/*.json' --exclude "docs/*" --exclude "examples/*" --exclude "test/*" |
| 78 | + |
| 79 | +.PHONY: update-iam-data |
| 80 | +update-iam-data: |
| 81 | + python3 ./utils/download_docs.py |
0 commit comments