1+ .DEFAULT_GOAL := help
2+
3+ # Define subproject paths
4+ PY_WORKER_DIR = lyric-py-worker
5+ JS_WORKER_DIR = lyric-js-worker
6+ TASK_WORKER_DIR = lyric-task
7+
8+ .PHONY : all
9+ all : build # # Build all subprojects
10+
11+ .PHONY : build
12+ build : build-task build-py-worker build-js-worker # # Build all subprojects
13+
14+ .PHONY : build-task
15+ build-task : # # Build the task dependency
16+ @echo " Building task..."
17+ $(MAKE ) -C $(TASK_WORKER_DIR ) build
18+
19+ .PHONY : build-py-worker
20+ build-py-worker : # # Build the Python worker
21+ @echo " Building Python worker..."
22+ $(MAKE ) -C $(PY_WORKER_DIR ) build
23+
24+
25+ .PHONY : build-js-worker
26+ build-js-worker : # # Build the JavaScript worker
27+ @echo " Building JavaScript worker..."
28+ $(MAKE ) -C $(JS_WORKER_DIR ) build
29+
30+ .PHONY : clean
31+ clean : # # Clean all projects
32+ @echo " Cleaning all projects..."
33+ rm -rf dist
34+
35+
36+ .PHONY : publish-pypi
37+ publish-pypi : build # # Publish all packages to PyPI
38+ @echo " Publishing to PyPI..."
39+ @if [ -z " $( TWINE_USERNAME) " ] || [ -z " $( TWINE_PASSWORD) " ]; then \
40+ echo " Error: TWINE_USERNAME and TWINE_PASSWORD environment variables must be set" ; \
41+ exit 1; \
42+ fi
43+ @echo " Uploading all distributions from dist/"
44+ twine upload dist/*
45+
46+ .PHONY : publish-testpypi
47+ publish-testpypi : build # # Publish all packages to TestPyPI
48+ @echo " Publishing to TestPyPI..."
49+ @if [ -z " $( TWINE_USERNAME) " ] || [ -z " $( TWINE_PASSWORD) " ]; then \
50+ echo " Error: TWINE_USERNAME and TWINE_PASSWORD environment variables must be set" ; \
51+ exit 1; \
52+ fi
53+ @echo " Uploading all distributions from dist/"
54+ rye run twine upload --repository testpypi dist/*
55+
56+ .PHONY : help
57+ help : # # Display this help screen
58+ @echo " Available commands:"
59+ @grep -E ' ^[a-z.A-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST ) | awk ' BEGIN {FS = ":.*?## "}; {printf " \033[36m%-18s\033[0m %s\n", $$1, $$2}' | sort
0 commit comments