forked from multigcs/viaconstructor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
executable file
·163 lines (119 loc) · 5.71 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
VERSION ?= $(shell grep "version=" setup.py | cut -d"'" -f2)
DOCKERBASE ?= fedora
all: ruff isort black lint pytest help_gen gettext docindex done
done:
@echo "-------------------------"
@echo "ALL RIGHT !"
@echo "-------------------------"
check: ruff isort_check black_check lint pytest_check
format: isort black
pdoc: pyvenv
rm -rf docs/pdoc
pyvenv/bin/pdoc -o docs/pdoc viaconstructor/ dxfpreview/ gcodepreview/
help_gen: pyvenv
mkdir -p docs/help
pyvenv/bin/pdoc help_gen.py
docindex: pyvenv
pyvenv/bin/markdown_py README.md | sed "s|https://raw.githubusercontent.com/multigcs/viaconstructor/main/docs/|./|g" > docs/readme.html
pyvenv-update: pyvenv pip-compile
pyvenv/bin/python -m pip install -r requirements-dev.txt
pyvenv/bin/python -m pip install -r requirements.txt
pyvenv:
python3 -m venv pyvenv
pyvenv/bin/python -m pip install -r requirements-dev.txt
pyvenv/bin/python -m pip install -r requirements.txt
@echo "# for testing: pyvenv/bin/python -m viaconstructor tests/data/simple.dxf"
@echo "# for testing: pyvenv/bin/python -m gcodepreview tests/data/simple.ngc"
pip-compile: pyvenv requirements-dev.txt requirements.txt
requirements-dev.txt: requirements-dev.in
pyvenv/bin/pip-compile --generate-hashes --allow-unsafe requirements-dev.in
requirements.txt: requirements.in
pyvenv/bin/pip-compile --generate-hashes --allow-unsafe requirements.in
isort: pyvenv
pyvenv/bin/python -m isort --profile black */*py viaconstructor/*/*.py
ruff: pyvenv
pyvenv/bin/python -m ruff check viaconstructor/*.py viaconstructor/*/*.py tests/*.py
isort_check: pyvenv
pyvenv/bin/python -m isort --check --profile black */*py viaconstructor/*/*.py
black: pyvenv
pyvenv/bin/python -m black */*py viaconstructor/*/*.py
black_check: pyvenv
pyvenv/bin/python -m black --check */*py viaconstructor/*/*.py
lint: flake8 pylint mypy
flake8: pyvenv
pyvenv/bin/python -m flake8 viaconstructor/*.py viaconstructor/*/*.py tests/*.py
mypy: pyvenv
pyvenv/bin/python -m mypy viaconstructor/*.py
pylint: pyvenv
pyvenv/bin/python -m pylint viaconstructor/*.py viaconstructor/*/*.py
pytest: pyvenv
PYTHONPATH=. pyvenv/bin/python -m pytest --cov=viaconstructor --cov-report html:docs/pytest --cov-report term tests/
pytest_check: pyvenv
PYTHONPATH=. pyvenv/bin/python -m pytest -vv tests/
clean:
rm -rf .coverage
rm -rf .mypy_cache
rm -rf */__pycache__/
rm -rf */*/__pycache__
rm -rf */*/*/__pycache__
rm -rf dist/
rm -rf deb_dist/
rm -rf build/
rm -rf viaconstructor.egg-info/
rm -rf deb_dist/
rm -rf AppDir/
rm -rf viaconstructor-*.AppImage
rm -rf viaconstructor-*.tar.gz
dist-clean: clean
rm -rf pyvenv
rm -rf docs/pdoc
rm -rf docs/help
run: run-viaconstructor
run-viaconstructor: pyvenv
pyvenv/bin/python -m viaconstructor tests/data/simple.dxf
run-gcodepreview: pyvenv
pyvenv/bin/python -m gcodepreview tests/data/simple.ngc
install:
python3 setup.py install
docker-build:
docker build -t viaconstructor -f Dockerfile.${DOCKERBASE} .
docker-run-dist-check: dist
docker rm viaconstructor || true
docker run --net=host -e DISPLAY=:0 --privileged --name viaconstructor -v $(CURDIR):/usr/src/viaconstructor -t -i viaconstructor /bin/bash -c "cd /usr/src/viaconstructor; pip3 install dist/viaconstructor-*.tar.gz; cd ~ ; ln -sf /usr/src/viaconstructor/tests ./ ; viaconstructor tests/data/check.dxf -s tests/data/gcode-2x2mm-d2.cfg -o /tmp/out.ngc ; diff /tmp/out.ngc tests/data/check.dxf-gcode-2x2mm-d2.cfg.check"
@echo "--- DISTCHECK OK ---"
docker-run-dist: dist
docker rm viaconstructor || true
docker run --net=host -e DISPLAY=:0 --privileged --name viaconstructor -v $(CURDIR):/usr/src/viaconstructor -t -i viaconstructor /bin/bash -c "cd /usr/src/viaconstructor; pip3 install dist/viaconstructor-*.tar.gz; cd ~ ; viaconstructor /usr/src/viaconstructor/tests/data/simple.dxf"
docker-run-deb: bdist_deb
docker rm viaconstructor || true
docker run --net=host -e DISPLAY=:0 --privileged --name viaconstructor -v $(CURDIR):/usr/src/viaconstructor -t -i viaconstructor /bin/bash -c "cd /usr/src/viaconstructor; apt-get install -y ./deb_dist/python3-viaconstructor_*.deb; cd ~ ; viaconstructor /usr/src/viaconstructor/tests/data/simple.dxf"
docker-run-pip-install:
docker rm viaconstructor || true
docker run --net=host -e DISPLAY=:0 --privileged --name viaconstructor -v $(CURDIR)/tests/data:/usr/src -t -i viaconstructor /bin/bash -c "cd /usr/src; pip3 install viaconstructor; viaconstructor simple.dxf"
docker-run-dev:
docker rm viaconstructor || true
docker run --net=host -e DISPLAY=:0 --privileged --name viaconstructor -v $(CURDIR):/usr/src/viaconstructor -t -i viaconstructor /bin/bash -c "cd /usr/src/viaconstructor; pip3 install -r requirements.txt; bin/viaconstructor tests/data/simple.dxf"
docker-run-shell:
docker rm viaconstructor || true
docker run --net=host -e DISPLAY=:0 --privileged --name viaconstructor -v $(CURDIR):/usr/src/viaconstructor -t -i viaconstructor /bin/bash
gettext:
/usr/bin/pygettext3 --no-location -d base -o viaconstructor/locales/base.pot viaconstructor/viaconstructor.py viaconstructor/setupdefaults.py
@for lang in de ; do \
echo "updating lang $$lang" ; \
msgmerge --update viaconstructor/locales/$$lang/LC_MESSAGES/base.po viaconstructor/locales/base.pot ; \
msgfmt -o viaconstructor/locales/$$lang/LC_MESSAGES/base.mo viaconstructor/locales/$$lang/LC_MESSAGES/base ; \
done
dist:
python3 setup.py sdist
pypi: dist docker-run-dist-check
twine upload -u meister23 --verbose dist/viaconstructor*
bdist_deb:
python3 setup.py --command-packages=stdeb.command bdist_deb
ls -l deb_dist/*.deb
bdist_rpm:
python setup.py bdist_rpm
appimage: bdist_deb
rm -rf viaconstructor-.*.AppImage
sed -i "s| version: .*| version: ${VERSION}|g" AppImageBuilder.yml
appimage-builder || true
chmod +x viaconstructor-*.AppImage