|
1 | | -PACKAGE_NAME = OpenHosta |
2 | | -SRC_DIR = src/OpenHosta |
3 | | -TEST_DIR = tests |
4 | | -DOC_DIR = doc |
| 1 | +PACKAGE_NAME := OpenHosta |
| 2 | +SRC_DIR := src/OpenHosta |
| 3 | +TEST_DIR := tests |
| 4 | +DOC_DIR := doc |
| 5 | +API_KEY = |
| 6 | +TAG := "-==[OpenHosta]==- \>\>\>" |
| 7 | + |
| 8 | +ifeq ($(OS),Windows_NT) |
| 9 | + DETECTED_OS := Windows |
| 10 | + NULL_DEVICE := NUL |
| 11 | + PYTHON := python |
| 12 | + PIP := pip |
| 13 | + L_SHELL := powershell -Command |
| 14 | + PYTEST := & C:\\Users\\Merlin\\AppData\\Roaming\\Python\\Python312\\Scripts\\pytest.exe |
| 15 | + ENV := $$env: |
| 16 | + WRITE := "Write-Host |
| 17 | + COLOR := -ForegroundColor DarkMagenta" |
| 18 | + FIND := "Get-ChildItem -Path . -Recurse -Directory -Filter |
| 19 | + RM := Remove-Item -Recurse -Force" |
| 20 | + CLEAR := "clear" |
| 21 | + CLEAR_DATA = type NUL > $(REDIRECT) |
| 22 | + MKDIR := New-Item -ItemType Directory -Force -Path |
| 23 | +else |
| 24 | + DETECTED_OS := Linux |
| 25 | + NULL_DEVICE := /dev/null |
| 26 | + PYTHON := python3 |
| 27 | + PIP := pip3 |
| 28 | + L_SHELL := |
| 29 | + PYTEST := pytest |
| 30 | + ENV := export |
| 31 | + WRITE := echo |
| 32 | + COLOR := |
| 33 | + FIND := find |
| 34 | + RM := rm -rf |
| 35 | + CLEAR := clear |
| 36 | + CLEAR_DATA = > $(REDIRECT) |
| 37 | + MKDIR := mkdir |
| 38 | +endif |
5 | 39 |
|
6 | 40 | all: help |
7 | 41 |
|
8 | 42 | help: |
9 | 43 | @echo Usage: |
10 | 44 | @echo make help Show this help message |
11 | 45 | @echo make package Package the project for pip installation |
12 | | - @echo make tests Run the tests |
| 46 | + @echo make *tests Run the tests |
13 | 47 | @echo make format Format the code using black |
14 | 48 | @echo make lint Check code quality using flake8 |
15 | 49 | @echo make clean Clean not necessary files |
16 | 50 |
|
| 51 | +install: all |
| 52 | + @$(L_SHELL) $(WRITE) '$(TAG) [INSTALL]' $(COLOR) |
| 53 | + @$(L_SHELL) $(WRITE) '$(TAG) Installing dependencies...' $(COLOR) |
| 54 | + @$(PIP) install requirements.txt > $(NULL_DEVICE) |
| 55 | + @$(PIP) install requirements-dev.txt > $(NULL_DEVICE) |
| 56 | + @$(L_SHELL) $(WRITE) '$(TAG) Installing package: $(PACKAGE_NAME)...' $(COLOR) |
| 57 | + @$(PIP) install . > $(NULL_DEVICE) |
| 58 | + @$(L_SHELL) $(WRITE) '$(TAG) Succesfully installed $(PACKAGE_NAME) !' $(COLOR) |
| 59 | + |
17 | 60 | build: |
18 | | - python -m build |
19 | | - python -m twine check dist/* |
| 61 | + $(PYTHON) -m build |
| 62 | + $(PYTHON) -m twine check dist/* |
20 | 63 |
|
21 | | -upload: |
22 | | - python -m twine upload dist/* |
| 64 | +upload: build |
| 65 | + $(PYTHON) -m twine upload dist/* |
23 | 66 |
|
24 | | -tests: |
25 | | - pip install . |
26 | | - pytest .\tests\functionnalTests\test_mandatory.py -v |
27 | | - pip uninstall -y OpenHosta |
| 67 | +ftests: clean |
| 68 | + @$(L_SHELL) $(WRITE) '$(TAG) Installing package: $(PACKAGE_NAME)...' $(COLOR) |
| 69 | + @$(PIP) install . > $(NULL_DEVICE) |
| 70 | + @$(L_SHELL) $(WRITE) '$(TAG) Running functionnal tests...' $(COLOR) |
| 71 | + @$(L_SHELL) $(SET_ENV) |
| 72 | + @-$(L_SHELL) "$(PYTEST) .\\tests\\functionnalTests\\test_mandatory.py $(ARGS)" |
| 73 | + @$(L_SHELL) $(UNSET_ENV) |
| 74 | + @$(L_SHELL) $(WRITE) '$(TAG) Uninstalling package: $(PACKAGE_NAME)...' $(COLOR) |
| 75 | + @$(PIP) uninstall -y OpenHosta > $(NULL_DEVICE) |
| 76 | + @$(L_SHELL) $(WRITE) '$(TAG) Succesfully ran functionnal tests !' $(COLOR) |
28 | 77 |
|
29 | | -format: |
30 | | - black $(SRC_DIR) |
| 78 | +utests: clean |
| 79 | + @$(L_SHELL) $(WRITE) '$(TAG) Installing package: $(PACKAGE_NAME)...' $(COLOR) |
| 80 | + @$(PIP) install . > $(NULL_DEVICE) |
| 81 | + @$(L_SHELL) $(WRITE) '$(TAG) Running unit tests...' $(COLOR) |
| 82 | + @$(L_SHELL) $(SET_ENV) |
| 83 | + @-$(L_SHELL) "$(PYTEST) .\\tests\\unitTests\\test_exec.py $(ARGS)" |
| 84 | + @$(L_SHELL) $(UNSET_ENV) |
| 85 | + @$(L_SHELL) $(WRITE) '$(TAG) Uninstalling package: $(PACKAGE_NAME)...' $(COLOR) |
| 86 | + @$(PIP) uninstall -y OpenHosta > $(NULL_DEVICE) |
| 87 | + @$(L_SHELL) $(WRITE) '$(TAG) Succesfully ran unit tests !' $(COLOR) |
31 | 88 |
|
32 | | -lint: |
33 | | - flake8 $(SRC_DIR) $(TEST_DIR) |
34 | 89 |
|
35 | 90 | clean: |
36 | | - rm -rf build dist *.egg-info |
37 | | - find . -name "__pycache__" -exec rm -rf {} + |
38 | | - find . -name "__hostacache__" -exec rm -rf {} + |
| 91 | + @$(L_SHELL) $(WRITE) '$(TAG) [CLEAN]' $(COLOR) |
| 92 | + @$(L_SHELL) $(WRITE) '$(TAG) Cleaning repository...' $(COLOR) |
| 93 | + @$(L_SHELL) $(FIND) '__pycache__' | $(RM) |
| 94 | + @$(L_SHELL) $(FIND) '__hostacache__' | $(RM) |
| 95 | + @$(L_SHELL) $(FIND) 'build' | $(RM) |
| 96 | + @$(L_SHELL) $(FIND) 'dist' | $(RM) |
| 97 | + @$(L_SHELL) $(FIND) 'OpenHosta.egg-info' | $(RM) |
| 98 | + @$(L_SHELL) $(FIND) '.pytest_cache' | $(RM) |
| 99 | + @$(L_SHELL) $(WRITE) '$(TAG) Uninstalling package: $(PACKAGE_NAME)...' $(COLOR) |
| 100 | + @$(PIP) uninstall -y OpenHosta > $(NULL_DEVICE) |
| 101 | + @$(L_SHELL) $(CLEAR) |
| 102 | + @$(L_SHELL) $(WRITE) '$(TAG) Succesfully cleaned repository !' $(COLOR) |
| 103 | + |
| 104 | +format: clean |
| 105 | + @black $(SRC_DIR) $(ARGS) |
39 | 106 |
|
40 | | -fclean: clean |
41 | | - rm -rf .pytest_cache .mypy_cache |
| 107 | +lint: format |
| 108 | + @flake8 $(SRC_DIR) $(ARGS) |
42 | 109 |
|
43 | | -make re: |
44 | | - pip uninstall -y OpenHosta |
45 | | - pip install .. |
| 110 | +re: clean |
| 111 | + @$(L_SHELL) $(WRITE) '$(TAG) Uninstalling package: $(PACKAGE_NAME)...' $(COLOR) |
| 112 | + @$(PIP) uninstall -y OpenHosta > $(NULL_DEVICE) |
| 113 | + @$(L_SHELL) $(WRITE) '$(TAG) Installing package: $(PACKAGE_NAME)...' $(COLOR) |
| 114 | + @$(PIP) install . > $(NULL_DEVICE) |
| 115 | + @$(L_SHELL) $(WRITE) '$(TAG) Succesfully updated package !' $(COLOR) |
46 | 116 |
|
47 | | -.PHONY: all help build tests format lint clean fclean re |
| 117 | +.PHONY: all help build upload ftests utests format lint clean re install |
0 commit comments