Makefile 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # ---------- ---------- ---------- ---------- ---------- ----------
  2. #
  3. # med-enterprise-dash Makefile
  4. #
  5. # 1) config, vars, and target
  6. # 2) functions
  7. # 3) phonies
  8. #
  9. # ---------- ---------- ---------- ---------- ---------- ----------
  10. target: help
  11. # ---------- ---------- ---------- ---------- ---------- ----------
  12. # functions
  13. # ---------- ---------- ---------- ---------- ---------- ----------
  14. define fix
  15. @black --exclude=var/ ./ ./bin/* || \
  16. echo "black returned nonzero $$?"
  17. endef
  18. define lint
  19. @flake8 --exclude=var/ --max-line-length 88 ./src/med ./tests || \
  20. echo "flake8 returned nonzero $$?"
  21. @flake8 --max-line-length 88 --ignore E402 ./bin/* || \
  22. echo "flake8 returned nonzero $$?"
  23. endef
  24. # ---------- ---------- ---------- ---------- ---------- ----------
  25. # phonies
  26. # ---------- ---------- ---------- ---------- ---------- ----------
  27. .PHONY: help
  28. help:
  29. @echo "Usage: make [PHONY]"
  30. @sed -n -e '/sed/! s/\.PHONY: //p' Makefile
  31. .PHONY: clean
  32. clean:
  33. @py3clean . || echo "pyclean not installed"
  34. @rm -rf ./var
  35. .PHONY: dev
  36. dev:
  37. @$(call fix)
  38. @$(call lint)
  39. .PHONY: requirements
  40. requirements:
  41. @poetry export \
  42. -f requirements.txt \
  43. -o requirements.txt
  44. @poetry export \
  45. --dev \
  46. -f requirements.txt \
  47. -o requirements.dev.txt
  48. .PHONY: run
  49. run:
  50. @./bin/run_test_server
  51. .PHONY: rerun
  52. rerun: wipe dev test run
  53. .PHONY: test
  54. test:
  55. @python3 -m unittest discover -s tests -t . || \
  56. echo "unit tests failed"
  57. .PHONY: venv
  58. venv: requirements
  59. @python3 -m venv ./var/venv
  60. @./var/venv/bin/pip install --upgrade pip
  61. @./var/venv/bin/pip install -r requirements.dev.txt
  62. @echo "Now activate the venv:"
  63. @echo " source ./var/venv/bin/activate"
  64. .PHONY: wipe
  65. wipe:
  66. @clear