repos

blog.bythewood.me-wagtail

mirror archived upstream

Self-hostable blog for developers built on Wagtail and Django, with webpack, Bootstrap, and CodeMirror.

blogbootstrapdjangodockerhandcodedpythonself-hostedwagtailwebpack

2.2 KB · 82 lines · Makefile Raw History
 1# Django + Webpack Makefile
 2
 3
 4.PHONY: run runserver webpack check clean push pull update
 5.DEFAULT: run
 6
 7
 8SERVER_URL = $(shell git config --get remote.server.url | cut -d ':' -f 1)
 9PROJECT_NAME = $(shell basename $(PWD))
10
11
12run: check install
13	@echo "run ----------------------------------------------------------------"
14	${MAKE} -j2 runserver webpack
15
16runserver:
17	uv run python manage.py runserver 0.0.0.0:8000
18
19webpack:
20	npx nodemon --watch webpack.config.js --exec \
21		'webpack --config webpack.config.js --mode development --watch --devtool source-map'
22
23
24check:
25	@echo "check --------------------------------------------------------------"
26	@if ! which uv > /dev/null; then\
27		echo "> uv not found in PATH, please install it: https://docs.astral.sh/uv/";\
28		exit 1;\
29	fi
30	@if ! which yarn > /dev/null; then\
31		echo "> yarn not found in PATH, please make sure it's installed along with node";\
32		exit 1;\
33	fi
34	@echo "> all checks passed"
35
36
37install: node_modules/touchfile .venv/touchfile db.sqlite3
38
39node_modules/touchfile: package.json
40	@echo "install node deps --------------------------------------------------"
41	yarn install
42	touch $@
43	@echo "> all node deps installed"
44
45.venv/touchfile: pyproject.toml
46	@echo "install python deps ------------------------------------------------"
47	uv sync
48	touch $@
49	@echo "> all python deps installed"
50
51db.sqlite3:
52	@echo "create database ----------------------------------------------------"
53	uv run python manage.py migrate
54	@echo "> database created"
55
56
57push:
58	@echo "push ---------------------------------------------------------------"
59	git remote | xargs -I R git push R master
60
61pull:
62	@echo "pull ---------------------------------------------------------------"
63	rsync -avz $(SERVER_URL):/srv/data/$(PROJECT_NAME)/db/db.sqlite3 db.sqlite3
64	rsync -avz $(SERVER_URL):/srv/data/$(PROJECT_NAME)/media/ media
65	@echo "> all files copied"
66
67
68update: install
69	@echo "update -------------------------------------------------------------"
70	uv lock --upgrade
71	yarn upgrade
72	@echo "> all deps updated"
73
74
75clean:
76	@echo "clean --------------------------------------------------------------"
77	rm -rf node_modules
78	rm -rf .venv
79	rm -rf db.sqlite3
80	rm -rf media
81	@echo "> all files removed"